======MySQL Cheat Sheet====== =====Clear Screen===== On Linux CTRL+L =====General Database===== ====Connect to MySQL==== mysql -uUSERNAME -p -h hostname -P 3306 Assuming that you are connecting to the localhost and that MySQL is running on the default port of 3306, you can use a shorter command mysql -uUSERNAME -p ====Allow Perl to Connect To MySQL==== Run this command to allow Perl to connect to Database server while still having SELinux enabled. semanage boolean -m --on httpd_can_network_connect_db ====Allow Remote Connection==== In this example we allow the user 'testuser' on remote PC workstation1.example.com to access everything on the database testdb. We also set the password to be 123456; GRANT ALL PRIVILEGES ON testdb.* to 'testuser'@'db.example.com' IDENTIFIED BY '123456'; ====Get Database Size==== SELECT table_schema "Data Base Name", sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema ; =====Users===== ====List Users==== SELECT user FROM mysql.user; SELECT user,host FROM mysql.user; ====Create User==== CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'PASSWORD'; ====Delete User==== DROP USER 'testuser'@'localhost'; =====Passwords===== ====Change Password==== SET PASSWORD FOR 'testuser'@'%' = PASSWORD('cleartextpassword'); SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD('cleartextpassword'); =====Permissions===== ====Show Permissions/Grants==== SHOW GRANTS; SHOW GRANTS FOR 'root'@'localhost'; ====Grant Permissions==== GRANT ALL ON testdb.* TO 'testuser'@'localhost'; flush privileges; GRANT SELECT, INSERT, UPDATE, DELETE ON testdb.* TO 'testuser'@'localhost'; flush privileges; ====Revoke Permissions==== REVOKE UPDATE, DELETE ON testdb.* FROM 'testuser'@'localhost'; flush privileges; =====Databases and Tables===== ====List Databases==== SHOW DATABASES; ====Create Database==== CREATE DATABASE testdb; ====Delete Database==== DROP DATABASE testdb; ====List Tables==== SHOW TABLES FROM testdb ====List Columns==== SHOW COLUMNS FROM testdb; =====Adding Data===== ====Update Data==== UPDATE databasename.tablename SET columnname="some_value" WHERE columnname="value"; ====Insert Data==== INSERT INTO databasename.tablename (columnname1, columnname2) VALUES ("value1", 132); ====Use COUNT==== select a.col1, a.col2, (select count(*) from table2 b where b.col1=a.col1) from table1 as a group by col1;