MySQL常用命令/用戶管理/數據庫備份與恢復

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容