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輸出的內(nèi)容排版混亂宛琅,使用\G后sql語句可以不加分號)
查看當前用戶:
select user();
1
查看當前所在數(shù)據(jù)庫:
select database();
1
查看mysql版本:
select version();
1
創(chuàng)建數(shù)據(jù)庫:
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
查看數(shù)據(jù)庫狀態(tài):
show status;
1
查看各參數(shù)配置:
show variables;
1
查看指定參數(shù):
show variables like 'slow%';
1
臨時修改參數(shù)值:
set global max_connect_errors=200;
1
#mysql重啟后失效,需要永久修改編輯/etc/my.cnf配置文件
查看mysql消息隊列:
show processlist;
show full processlist;
1
2
#使用full可以將查詢結(jié)果info字段中正在執(zhí)行的sql語句顯示完整
2.MySQL創(chuàng)建用戶以及用戶授權(quán)
1.創(chuàng)建用戶test闸准,密碼test123:
grant all on *.* to 'test'@'localhost' identified by 'test123';
1
*.*表示:庫.表,也就是授權(quán)所有庫的所有表辙售,只授權(quán)db1庫的所有表:db1.*
localhost表示授權(quán)只能從本機通過socket文件登錄爽哎,常用登錄方式:mysql -uroot -p就是通過socket文件mysql.sock登錄姐帚,命令寫全為:
mysql -uroot -pxxx -S/tmp/mysql.sock
1
如果授權(quán)從127.0.0.1登錄,那么登錄時需要加上-h參數(shù)指定host:
mysql -uroot -pxxx -h127.0.0.1
1
授權(quán)所以地址登錄使用百分號%即可:‘test’@’%’
2.創(chuàng)建用戶test2铺根,密碼test123:
grant SELECT,UPDATE,INSERT on mysql.* to 'test2'@'192.168.234.128' identified by 'test123';
1
授權(quán)用戶test2只能從192.168.234.128登錄宪躯,并且只有mysql庫所有表的查詢、更改位迂、新增權(quán)限
mysql授權(quán)用戶的登錄IP為整個網(wǎng)段:‘test2’@'192.168.234.%'
3.查詢mysql用戶授權(quán)內(nèi)容:
show grants;
1
#默認查詢當前用戶的授權(quán)信息
查詢指定用戶的授權(quán)信息:
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
一般用于增加授權(quán)IP访雪,當前test2用戶授權(quán)地址為192.168.234.128,如果需要給test2用戶添加一個授權(quán)地址192.168.234.130掂林,直接復制表格中的兩句內(nèi)容執(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)權(quán)限相關(guān)的表才能生效臣缀,或者重啟mysql服務使其生效
3.常用MySQL語句
查詢:select * from table;
統(tǒng)計行數(shù):select(*) from table;
更改數(shù)據(jù):update table set tb_xxx=xxx;
刪除數(shù)據(jù):delete from table where tb_xxx=xxx;
清空表數(shù)據(jù):truncate table_name;(保留表結(jié)構(gòu))
刪除表:drop table table_name;
刪除庫:drop database db_name;
4.MySQL密碼設(shè)置與更改
設(shè)置root用戶密碼:
[root@linux ~]# mysqladmin -uroot password "123456"
1
更改root用戶密碼:
[root@linux ~]# mysqladmin -uroot -p'123456' password '654321'
1
登錄數(shù)據(jù)庫更改密碼:
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=password('123456') where user='root';
1
2
#password():mysql加密函數(shù),使密碼在表中不以明文顯示
注意:在當前較高的mysql版本中泻帮,root密碼已經(jīng)不存放在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數(shù)據(jù)備份與恢復
備份mysql庫:
[root@linux ~]# mysqldump -uroot -p123456 mysql > /tmp/mysql_bak.sql
1
恢復備份的mysql庫到mysql2數(shù)據(jù)庫:
[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庫的表結(jié)構(gòu):
[root@linux ~]# mysqldump -uroot -p123456 -d mysql > /tmp/mysql_tb.sql
1
只備份mysql庫user表的表結(jié)構(gòu):
[root@linux ~]# mysqldump -uroot -p123456 -d mysql user > /tmp/mysql_user.sql
1
補充:mysqldump方法備份適用于數(shù)據(jù)量不大的數(shù)據(jù)庫锣杂,數(shù)據(jù)量幾百G脂倦,甚至多少T的數(shù)據(jù)量備份起來會非常的慢
————————————————
版權(quán)聲明:本文為CSDN博主「Asn_Fy」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議元莫,轉(zhuǎn)載請附上原文出處鏈接及本聲明赖阻。
原文鏈接:https://blog.csdn.net/Powerful_Fy/article/details/102731396