Getting started with MySQL
This will cover the basic usage of using MySQL. If you should be interested in setting up MySQL, please refer to
SSH Client:
We will need a SSH Client, in order to connect to the server running MySQL:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
Once the download has been completed, open putty.exe and provide the following details:
Host Name: your_user@the_ip_of_the_server
Then select Open.
After entering your password you will be logged on to the server.
Accessing MySQL:
$ mysql -u your_username -p
Create Database:
mysql> create database test_db;
List Databases:
mysql> show databases;
Select Database to action:
mysql> use test_db;
Create a Table:
We will create a table named 'cars' in the database that was created. The table will look like this:
| Model | Color | Max Speed |
|--------|--------|------------|
| Polo | blue | 180 |
| Fiesta | white | 210 |
| Yaris | white | 120 |
Let's create the table:
mysql> create table cars (model VARCHAR(20), color VARCHAR(20), maxspeed VARCHAR(20));
Insert data into the table
mysql> insert into cars VALUES("polo", "blue", "180");
mysql> insert into cars VALUES("fiesta", "white", "210");
mysql> insert into cars VALUES("yaris", "blue", "120");
List tables:
mysql> show tables;
Describe Tables:
mysql> describe cars;
Queries: Show all info of the table
mysql> select * from cars;
Queries: Show all the white cars
mysql> select model from cars where color = 'white';
Queries: Show model and speed having a max speed more than 120
mysql> select model,maxspeed from cars where maxspeed > '120';
Create New User:
Create a new database, then create a user and grant him all privileges to his db.
mysql> CREATE DATBASE testdb;
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON testdb. * TO 'newuser'@'localhost';
mysql> FLUSH PRIVILEGES;
Grant Access from a Remote Location:
mysql> GRANT ALL PRIVILEGES on testdb.* to 'newuser'@'172.10.20.30' IDENTIFIED by 'password';
Grant Access to Prefixed Database Names:
Grant access to prefixed db names like db_test1
, db_test2
for a specific address:
mysql> GRANT ALL PRIVILEGES ON `db_%`.* TO 'newuser'@'localhost' IDENTIFIED BY 'password';
Grant Access to a Database from Everywhere:
mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'%' IDENTIFIED BY 'password' ;
Getting Some Insights:
mysql> show full processlist;
+--------+------+-----------------+---------------------+---------+------+-------+-----------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+--------+------+-----------------+---------------------+---------+------+-------+-----------------------+----------+
| 250067 | root | localhost:56640 | NULL | Sleep | 9 | | NULL | 0.000 |
+--------+------+-----------------+---------------------+---------+------+-------+-----------------------+----------+
Getting Status Variables:
mysql> SHOW GLOBAL STATUS LIKE 'Connections';
mysql> SHOW GLOBAL STATUS LIKE 'Max_used_connections';
mysql> SHOW GLOBAL STATUS LIKE 'Threads_created';
mysql> SHOW GLOBAL STATUS LIKE 'Threads_cached';
Deleting your database:
mysql> drop database test_db;
Exit MySQL:
mysql> exit;
Comments