1.MySQL常用命令
顯示所有庫:
show databases;
1
切換到mysql庫:
use mysql;
1
顯示mysql庫中的表:
show tables;
1
查看tb_user表的字段:
desc tb_user;
1
查看建表語句:
show create table tb_user\G
1
#\G:有序的顯示(不加\G輸出的內容排版混亂,使用\G后sql語句可以不加分號)
查看當前用戶:
select user();
1
查看當前所在數據庫:
select database();
1
查看mysql版本:
select version();
1
創(chuàng)建數據庫:
create database db_1;
1
創(chuàng)建表:
create table tb_1(`id`int(4),`name`char(40));
1
創(chuàng)建表的同時指定引擎、字符編碼:
create table tb_1(`id`int(4),`name`char(40)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1
查看數據庫狀態(tài):
show status;
1
查看各參數配置:
show variables;
1
查看指定參數:
show variables like 'slow%';
1
臨時修改參數值:
set global max_connect_errors=200;
1
#mysql重啟后失效,需要永久修改編輯/etc/my.cnf配置文件
查看mysql消息隊列:
show processlist;
show full processlist;
1
2
#使用full可以將查詢結果info字段中正在執(zhí)行的sql語句顯示完整
2.MySQL創(chuàng)建用戶以及用戶授權
1.創(chuàng)建用戶test,密碼test123:
grant all on *.* to 'test'@'localhost' identified by 'test123';
1
*.*表示:庫.表,也就是授權所有庫的所有表,只授權db1庫的所有表:db1.*
localhost表示授權只能從本機通過socket文件登錄,常用登錄方式:mysql -uroot -p就是通過socket文件mysql.sock登錄,命令寫全為:
mysql -uroot -pxxx -S/tmp/mysql.sock
1
如果授權從127.0.0.1登錄,那么登錄時需要加上-h參數指定host:
mysql -uroot -pxxx -h127.0.0.1
1
授權所以地址登錄使用百分號%即可:‘test’@’%’
2.創(chuàng)建用戶test2,密碼test123:
grant SELECT,UPDATE,INSERT on mysql.* to 'test2'@'192.168.234.128' identified by 'test123';
1
授權用戶test2只能從192.168.234.128登錄,并且只有mysql庫所有表的查詢、更改、新增權限
mysql授權用戶的登錄IP為整個網段:‘test2’@'192.168.234.%'
3.查詢mysql用戶授權內容:
show grants;
1
#默認查詢當前用戶的授權信息
查詢指定用戶的授權信息:
MariaDB [(none)]> show grants for test2@'192.168.234.128';
+--------------------------------------------------------------------------------------------------------------------+
| Grants for test2@192.168.234.128? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test2'@'192.168.234.128' IDENTIFIED BY PASSWORD '*676243218923905CF94CB52A3C9D3EB30CE8E20D' |
| GRANT SELECT, INSERT, UPDATE ON `mysql`.* TO 'test2'@'192.168.234.128'? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+--------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
1
2
3
4
5
6
7
8
一般用于增加授權IP,當前test2用戶授權地址為192.168.234.128,如果需要給test2用戶添加一個授權地址192.168.234.130,直接復制表格中的兩句內容執(zhí)行即可:
MariaDB [(none)]>? GRANT USAGE ON *.* TO 'test2'@'192.168.234.130' IDENTIFIED BY PASSWORD '*676243218923905CF94CB52A3C9D3EB30CE8E20D';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE ON `mysql`.* TO 'test2'@'192.168.234.130';
Query OK, 0 rows affected (0.000 sec)
1
2
3
4
5
注意:mysql執(zhí)行創(chuàng)建用戶或密碼變更操作后需要執(zhí)行:flush privileges 刷新系統(tǒng)權限相關的表才能生效,或者重啟mysql服務使其生效
3.常用MySQL語句
查詢:select * from table;
統(tǒng)計行數:select(*) from table;
更改數據:update table set tb_xxx=xxx;
刪除數據:delete from table where tb_xxx=xxx;
清空表數據:truncate table_name;(保留表結構)
刪除表:drop table table_name;
刪除庫:drop database db_name;
4.MySQL密碼設置與更改
設置root用戶密碼:
[root@linux ~]# mysqladmin -uroot password "123456"
1
更改root用戶密碼:
[root@linux ~]# mysqladmin -uroot -p'123456' password '654321'
1
登錄數據庫更改密碼:
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=password('123456') where user='root';
1
2
#password():mysql加密函數,使密碼在表中不以明文顯示
注意:在當前較高的mysql版本中,root密碼已經不存放在user表的password字段,而是存放在authentication_string字段
高版本mysql更改密碼:
MariaDB [mysql]> update user set authentication=password('123456') where user='root';
1
在不知道root用戶密碼的情況下修改密碼的方法,在上一篇文章中有介紹:
https://blog.csdn.net/Powerful_Fy/article/details/102689689
5.MySQL數據備份與恢復
備份mysql庫:
[root@linux ~]# mysqldump -uroot -p123456 mysql > /tmp/mysql_bak.sql
1
恢復備份的mysql庫到mysql2數據庫:
[root@linux ~]# mysql -uroot -p123456 mysql2 < /tmp/mysql_bak.sql
1
備份mysql庫中的user表:
[root@linux ~]# mysqldump -uroot -p123456 mysql user > /tmp/mysql_tbuser.sql
1
恢復備份的user表到mysql庫:
[root@linux ~]# mysql -uroot -p123456 mysql < /tmp/mysql_tbuser.sql
1
備份所有庫:
[root@linux ~]# mysqldump -uroot -p123456? -A > /tmp/mysql_all.sql
1
只備份mysql庫的表結構:
[root@linux ~]# mysqldump -uroot -p123456 -d mysql > /tmp/mysql_tb.sql
1
只備份mysql庫user表的表結構:
[root@linux ~]# mysqldump -uroot -p123456 -d mysql user > /tmp/mysql_user.sql
1
補充:mysqldump方法備份適用于數據量不大的數據庫,數據量幾百G,甚至多少T的數據量備份起來會非常的慢
————————————————
版權聲明:本文為CSDN博主「Asn_Fy」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權協(xié)議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Powerful_Fy/article/details/102731396