MySQL基本運維命令詳解
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.創(chuàng)教數據庫
命令: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;
但是實際的場景中我們常常需要進行多表查詢,復雜的業(yè)務需求也會造成連接查詢也變得非常復雜,常用的多表查詢方式有連接查詢和子查詢,但是連接查詢的效率一般會比子查詢高,關于連接查詢可以參考下面這篇文章:
不過也有地方不建議使用連接查詢,因為連接查詢屬于重查詢,數據量大容易造成阻塞,比如阿里就明文規(guī)定禁止用三個表以上的join。做項目的時候應該遵循重業(yè)務,輕數據庫的原則,能在業(yè)務層聚合,就不要用跨表查詢。
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. 存儲引擎、系統(tǒng)版本、端口
# 查看當前使用的存儲引擎 mysql > show engines; # 查看mysql默認存儲引擎 mysql> show variables like '%storage_engine%'; # 查看mysql系統(tǒng)版本 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運維命令內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySql?InnoDB存儲引擎之Buffer?Pool運行原理講解
緩沖池是用于存儲InnoDB表,索引和其他輔助緩沖區(qū)的緩存數據的內存區(qū)域。緩沖池的大小對于系統(tǒng)性能很重要。更大的緩沖池可以減少磁盤I/O來多次訪問同一表數據。在專用數據庫服務器上,可以將緩沖池大小設置為計算機物理內存大小的百分之802023-01-01

