首頁 > 軟體

MySQL基本運維命令詳解

2023-01-16 14:03:07

1. 匯出test_db資料庫

命令:mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名

mysqldump -u root -p test_db > test_db.sql

# 匯出所有資料庫
mysqldump -u root -p –all-databases > mysql_all.sql 

2. 匯出一個表

命令:mysqldump -u 使用者名稱 -p 資料庫名 表名> 匯出的檔名

mysqldump -u root -p test_db test1 > test_test1.sql

3. 匯出一個資料庫結構

mysqldump -u root -p -d --add-drop-table test_db > test.sql 

4. 匯入資料庫

1.常用source命令

進入mysql資料庫控制檯:

mysql -u root -p

然後使用source命令,後面引數為指令碼檔案(如這裡用到的.sql))

mysql>source wcnc_db.sql 

2.使用mysqldump命令

mysqldump -u username -p dbname < filename.sql 

3.使用mysql命令

mysql -u username -p -D dbname < filename.sql 

5. mysql進入與退出

進入

mysql -uroot -p //進入mysql控制檯  
mysql -uroot -p password //進入mysql控制檯  
mysql -p //進入mysql控制檯 

退出

# 第一種
quit
# 第二種
exit

6. 資料庫操作

1.創教資料庫

命令:create database <資料庫名>

mysql> create database [資料庫名]; 

2.顯示所有資料庫

mysql> show databases; 

3.刪除資料庫

mysql> drop database [資料庫名]; 

4.連線資料庫

mysql> use [資料庫名]; 

5.檢視當前使用的資料庫

mysql> select database(); 

6.當前資料庫包含的表資訊

mysql> show tables;

7.檢視資料庫字元集

mysql> show variables like '%char%';

7. 資料表操作

1.建表

mysql> create table [表名] (
	id varchar(20),
	name varchar(20)
); 

2.檢視表結構

命令:desc 表名,或者show columns from 表名

mysql> desc test;  
mysql> show columns from test;  
mysql> describe test;  
mysql> show create table test;  

3.刪除表

mysql> drop table [表名]; 

4.插入資料

mysql> insert into [表名] values ("001","張三"); 

5.查詢表資料

MySQL的單表查詢比較簡單,比如最基本的一些操作:

# 檢視表test中所有資料
mysql> select * from test; 

# 查詢test表中id=001內容
mysql > select * from test where id=001; 

# 查詢test表中已id為0開頭的內容
mysql > select * from test where id like "0%"; 

# 檢視表test中前2行資料
mysql> select * from test order by id limit 0,2; 
# 或者
mysql> select * from test limit 0,2;

但是實際的場景中我們常常需要進行多表查詢,複雜的業務需求也會造成連線查詢也變得非常複雜,常用的多表查詢方式有連線查詢和子查詢,但是連線查詢的效率一般會比子查詢高,關於連線查詢可以參考下面這篇文章:

mysql連線查詢

不過也有地方不建議使用連線查詢,因為連線查詢屬於重查詢,資料量大容易造成阻塞,比如阿里就明文規定禁止用三個表以上的join。做專案的時候應該遵循重業務,輕資料庫的原則,能在業務層聚合,就不要用跨表查詢。

6.刪除表資料

命令:delete from 表名 where 表示式

mysql> delete from test where id=001;

7.修改表資料

命令:update 表名 set 欄位=新值 where 表示式

mysql> update test set name='admin' where id=002;

修改表結構:

# 修改test表中name欄位的長度
mysql> alter table test modify column name varchar(30);

8.在表中增加欄位

命令:alter table 表名 add欄位 型別 其他;

# 在表test中新增了一個欄位passtest,型別為int(4),預設值為0
mysql> alter table test add passtest int(4) default '0';

9.更改表名

命令:rename table 原表名 to 新表名;

# 在表test名字更改為test1
mysql> rename table test to test1;

8. 修改密碼

命令:mysqladmin -uroot -p舊密碼 password 新密碼

mysql> use mysql;  
mysql> update mysql.user set password='新密碼' where user='使用者名稱';  
mysql> flush privileges;  
mysql> set password for 使用者名稱@localhost=password('你的密碼');  
mysql> flush privileges; 

9. 增加使用者

# 增加一個test使用者,密碼為1234
mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));  
mysql> flush privileges;

10. 刪除使用者

# 刪除test使用者
mysql> delete from user where user='test' and host='localhost';  
mysql> flush privileges;

11. 資料庫授權

命令:grant 許可權 on 資料庫名.* to 使用者名稱@localhost identified by ‘密碼’;

# 授權test使用者擁有test_db庫的所有許可權
grant all on test_db.* to test@localhost identified by '123456';

# 授權test使用者擁有test_db庫的select,update許可權
grant select,update on test_db.* to test@localhost;

12. 鎖表

# 加讀鎖
mysql> flush tables with read lock;

# 解鎖
mysql> unlock tables;

13. 檢視當前使用者

mysql > select user();

14. MYSQL密碼破解方法

先停止Mysql服務,以跳過許可權方式啟動,命令如下

service mysqld stop  
/usr/local/mysql/bin/mysqld_safe –user=mysql –skip-grant-tables &  

在shell終端輸入mysql並按Enter鍵,進入mysql命令列,由於MYSQL使用者及密碼認證資訊存放在mysql庫中的user表,需進入mysql庫:

mysql> use mysql;  
mysql> update user set password=password('123456') where user='root';  
mysql> flush privileges;

MYSQL root密碼修改完,需停止以Mysql跳過許可權表的啟動程序,再以正常方式啟動MYSQL,再次以新的密碼登陸即可進入Mysql資料庫

15. 儲存引擎、系統版本、埠

# 檢視當前使用的儲存引擎
mysql > show engines;

# 檢視mysql預設儲存引擎
mysql> show variables like '%storage_engine%';

# 檢視mysql系統版本
mysql> select version();

# 檢視mysql庫裡所有表
mysql>show tables from mysql;

# 檢視Mysql埠
mysql>show variables like 'port';

# 檢視mysql庫user表中user、host資訊
mysql> select user,host from mysql.user;

參考資料:

https://www.51cto.com/article/595574.html

到此這篇關於MySQL基本運維命令的文章就介紹到這了,更多相關MySQL運維命令內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com