Create MySQL user using Linux/Ubuntu command-line (CLI) statement

mysql is a program for connecting to a MySQL server. For the purposes of this tutorial, I'll assume you are connecting to a MySQL server that's running on the same machine as the 'mysql' program you will be running (i.e. "localhost").

SQL statements can be used outside the MySQL command-line program. If just want to read the relevant SQL statement(s), you can disregard steps 1 and 2 and skip to step 3.

1. Connect to mysql server

Syntax

mysql -u [username] -p
  • -u -- This flag must preceed the username. Without this flag, mysql will assume that the MySQL username makes the OS username of the logged in user running the program.
  • [username] -- MySQL username.*
  • -p -- Prompts user to provide password. Without this flag, mysql will search for a setting file that contains relevant password.

  • You may have a MySQL username that's identical to your Linux/OS username and they may even share the same password. But it's imporant to understand that these are different user accounts--much like using the same username and password on multiple web sites. For example, Linux has a default user called "root" and MySQL also has a default user called "root."

Example

mysql -u root -p

2. When prompted, enter your password

Remember: You are entering the username for the MySQL username you specified.

3. Enter "CREATE USER" statement

IMPORTANT: Make sure to include the quotation marks.

Syntax

CREATE USER '[user]'@'[server]' IDENTIFIED WITH mysql_native_password BY '[password]';
  • [username] -- Desired MySQL username.
  • [server] -- MySQL server address (IP address, domain name or "localhost").*
  • mysql_native_password -- This flag is really important so that your password is stored in a way that other programs can understand.
  • [pasword] -- Desired password for aforementioned MySQL user.

  • Unless you are trying to connect to a remote server, you only need to enter "localhost".

Example

CREATE USER 'wp_user'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

Note: Make sure to include the semicolon at the end of the MySQL statement.