In this section of the MySQL primer we will learn how to create a database.
The commands for creating a database in Windows and Linux are the same. However, the prelimnary commands in Linux are slightly more complex. Since this tutorial is meant for the complete newbie, I’ll discuss the Windows and Linux systems separately.
We’ll create a database called employees that contains details of employees of our company Bignet. The details we plan to store would be names, salaries, age, addresses, emails, birth dates, hobbies, phone numbers etc.
Creating MySQL database on Windows system
- Start the MySQL server by issuing the command mysqld-shareware –standalone at the prompt in c:\mysql\bin. Refer the previous session Installing MySQL on Windows for further details.
- Now invoke the mysql client program by typing mysql at the prompt.
- The prompt is changed to a mysql> prompt. Type:
create database employees;
(Note: The command ends with a semi-colon).
- The MySQL server responds with something like:
Query OK, 1 row affected (0.00 sec)
- This means that you have sucessfully created the database. Now, let’s see how many databases you have on your system. Issue the following command.
The server responds with the list of databases.
+----------------+ | Database | +----------------+ | employees | | mysql | | test | +----------------+ 3 rows in set (0.00 sec)
Here we have three databases, two created by MySQL during installation and our employees database.
- To come back to the DOS prompt, type quit at the mysql prompt.
Creating MySQL database on Linux system
- I assume that you are working from your account and not the root. Start a terminal session and become the superuser (Type su at the prompt and then enter the root password).
- Now we’ll access the MySQL server. Type:
mysql -u root -p
The system prompts for the MySQL root password that you set up in Installing MySQL on Linux. (Note: This is not the Linux root password but the MySQL root password). Enter the password, which is not displayed for security reasons.
Once you are successfully logged in, the system prints a welcome message and displays the mysql prompt … something like
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 3.22.32 Type 'help' for help. mysql>
- Now we are ready for creating the employees database. Issue the command:
create database employees;
(Note: The command ends with a semi-colon)
- An important point to note is that this database is created by the root and so will not be accessible to any other user unless permitted by the root. Thus, in order to use this database from my account (called manish), I have to set the permissions by issuing the following command:
GRANT ALL ON employees.* TO manish@localhost IDENTIFIED BY "eagle"
The above command grants my account (manish@localhost) all the permissions on employees database and sets my password to eagle. You should replace manish with your user name and choose an appropriate password.
- Close the mysql session by typing quit at the prompt. Exit from superuser and come back to your account. (Type exit).
- To connect to MySQL from your account, type:
mysql -u user_name -p
Type in the password when prompted. (This password was set by the GRANTS ALL… command above) . The system displays the welcome message once you have successfully logged on to MySQL. Here is how your session should look like:
[manish@localhost manish]$ mysql -u manish -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 3.22.32 Type 'help' for help. mysql>
- Typing the command SHOW DATABASES; will list all the databases available on the system. You should get a display similar to:
mysql> SHOW DATABASES; +----------------+ | Database | +----------------+ | employees | | mysql | | test | +----------------+ 3 rows in set (0.00 sec)
- Enter quit at the mysql> prompt to come out of the mysql client program.