How To Create A User In Mysql Database
Summary: in this tutorial, you will learn how to use the MySQL CREATE USER statement to create a new user in the database server.
MySQL CREATE USER syntax
The CREATE USER statement creates a new user in the database server.
Here is the basic syntax of the CREATE USER statement:
Code language: SQL (Structured Query Language) ( sql )
CREATE USER [IF NOT EXISTS] account_name IDENTIFIED BY 'password';
In this syntax:
First, specify the account name after the CREATE USER keywords. The account name has two parts: username and hostname, separated by the @ sign:
Code language: SQL (Structured Query Language) ( sql )
username@hostname
The username is the name of the user. And hostname is the name of the host from which the user connects to the MySQL Server.
The hostname part of the account name is optional. If you omit it, the user can connect from any host.
An account name without a hostname is equivalent to:
Code language: SQL (Structured Query Language) ( sql )
username@%
If the username and hostname contains special characters such as space or -, you need to quote the username and hostname separately as follows:
Code language: SQL (Structured Query Language) ( sql )
'username'@'hostname'
Besides the single quote ('), you can use backticks ( `) or double quotation mark ( ").
Second, specify the password for the user after the IDENTIFIED BY keywords.
The IF NOT EXISTS option conditionally create a new user only if it does not exist.
Note that the CREATE USER statement creates a new user without any privileges. To grant privileges to the user, you use the GRANT statement.
MySQL CREATE USER example
First, connect to the MySQL Server using the mysql client tool:
Code language: SQL (Structured Query Language) ( sql )
mysql -u root -p
Enter the password for the root account and press Enter:
Code language: SQL (Structured Query Language) ( sql )
Enter password: ********
Second, show users from the current MySQL Server:
Code language: SQL (Structured Query Language) ( sql )
mysql> select user from mysql.user;
Here is the output:
+------------------+ | user | +------------------+ | mysql.infoschema | | mysql.saession | | mysql.sys | | root | +------------------+
Third, create a new user called bob:
Code language: SQL (Structured Query Language) ( sql )
mysql> create user bob@localhost identified by 'Secure1pass!';
Fourth, show all users again:
Code language: SQL (Structured Query Language) ( sql )
mysql> select user from mysql.user;
The output will be:
Code language: JavaScript ( javascript )
+------------------+ | user | +------------------+ | bob | | mysql.infoschema | | mysql.session | | mysql.sys | | root | +------------------+ 5 rows in set (0.00 sec)
The user bob has been created successfully.
Fifth, open a second session and log in to the MySQL as bob:
Code language: SQL (Structured Query Language) ( sql )
mysql -u bob -p
Input the password for bob and press Enter:
Code language: SQL (Structured Query Language) ( sql )
Enter password: ********
Sixth, show the databases that bob has access:
Code language: SQL (Structured Query Language) ( sql )
mysql> show databases;
Here is the list of databases that bob can access:
Code language: JavaScript ( javascript )
+--------------------+ | Database | +--------------------+ | information_schema | +--------------------+ 1 row in set (0.01 sec)
Seventh, go to the session of the user root and create a new database called bobdb:
Code language: SQL (Structured Query Language) ( sql )
mysql> create database bobdb;
Eight, select the database bobdb:
Code language: SQL (Structured Query Language) ( sql )
mysql> use bobdb;
Ninth, create a new table called lists:
Code language: SQL (Structured Query Language) ( sql )
mysql> create table lists( -> id int auto_increment primary key, -> todo varchar(100) not null, -> completed bool default false);
Notice that when you press Enter, instead of showing the mysql> command, the mysql tool shows the -> that accepts new clause of the statement.
Tenth, grant all privileges on the bobdb to bob:
Code language: SQL (Structured Query Language) ( sql )
mysql> grant all privileges on bobdb.* to bob@localhost;
Note that you will learn how to grant privileges to a user in the GRANT tutorial.
Eleventh, go to the bob's session and show databases:
Code language: SQL (Structured Query Language) ( sql )
mysql> show databases;
Now, bob can see the bobdb:
Code language: JavaScript ( javascript )
+--------------------+ | Database | +--------------------+ | bobdb | | information_schema | +--------------------+ 2 rows in set (0.00 sec)
Twelfth, select the database bobdb:
Code language: SQL (Structured Query Language) ( sql )
mysql> use bobdb;
Thirteenth, show the tables from the bobdb database:
Code language: SQL (Structured Query Language) ( sql )
mysql> show tables;
The user bob can see the lists table:
Code language: JavaScript ( javascript )
+-----------------+ | Tables_in_bobdb | +-----------------+ | lists | +-----------------+ 1 row in set (0.00 sec)
Fourteenth, insert a row into the lists table:
Code language: SQL (Structured Query Language) ( sql )
mysql> insert into lists(todo) values('Learn MySQL');
Fifteenth, query data from the lists table:
Code language: SQL (Structured Query Language) ( sql )
mysql> select * from lists;
This is the output:
Code language: JavaScript ( javascript )
+----+-------------+-----------+ | id | todo | completed | +----+-------------+-----------+ | 1 | Learn MySQL | 0 | +----+-------------+-----------+ 1 row in set (0.00 sec)
So the user bob can do everything in the bobdb database.
Finally, disconnect from the MySQL Server from both sessions:
Code language: SQL (Structured Query Language) ( sql )
mysql> exit
In this tutorial, you have learned how to use the MySQL CREATE USER to create a new user in the database server.
Was this tutorial helpful?
How To Create A User In Mysql Database
Source: https://www.mysqltutorial.org/mysql-create-user.aspx
Posted by: cookdagothead.blogspot.com

0 Response to "How To Create A User In Mysql Database"
Post a Comment