MySQL基本運(yùn)維命令詳解
1. 導(dǎo)出test_db數(shù)據(jù)庫
命令:mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 導(dǎo)出的文件名
mysqldump -u root -p test_db > test_db.sql # 導(dǎo)出所有數(shù)據(jù)庫 mysqldump -u root -p –all-databases > mysql_all.sql
2. 導(dǎo)出一個(gè)表
命令:mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名> 導(dǎo)出的文件名
mysqldump -u root -p test_db test1 > test_test1.sql
3. 導(dǎo)出一個(gè)數(shù)據(jù)庫結(jié)構(gòu)
mysqldump -u root -p -d --add-drop-table test_db > test.sql
4. 導(dǎo)入數(shù)據(jù)庫
1.常用source命令
進(jìn)入mysql數(shù)據(jù)庫控制臺(tái):
mysql -u root -p
然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.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進(jìn)入與退出
進(jìn)入
mysql -uroot -p //進(jìn)入mysql控制臺(tái) mysql -uroot -p password //進(jìn)入mysql控制臺(tái) mysql -p //進(jìn)入mysql控制臺(tái)
退出
# 第一種 quit # 第二種 exit
6. 數(shù)據(jù)庫操作
1.創(chuàng)教數(shù)據(jù)庫
命令:create database <數(shù)據(jù)庫名>
mysql> create database [數(shù)據(jù)庫名];
2.顯示所有數(shù)據(jù)庫
mysql> show databases;
3.刪除數(shù)據(jù)庫
mysql> drop database [數(shù)據(jù)庫名];
4.連接數(shù)據(jù)庫
mysql> use [數(shù)據(jù)庫名];
5.查看當(dāng)前使用的數(shù)據(jù)庫
mysql> select database();
6.當(dāng)前數(shù)據(jù)庫包含的表信息
mysql> show tables;
7.查看數(shù)據(jù)庫字符集
mysql> show variables like '%char%';
7. 數(shù)據(jù)表操作
1.建表
mysql> create table [表名] ( id varchar(20), name varchar(20) );
2.查看表結(jié)構(gòu)
命令: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.插入數(shù)據(jù)
mysql> insert into [表名] values ("001","張三");
5.查詢表數(shù)據(jù)
MySQL的單表查詢比較簡單,比如最基本的一些操作:
# 查看表test中所有數(shù)據(jù) mysql> select * from test; # 查找test表中id=001內(nèi)容 mysql > select * from test where id=001; # 查找test表中已id為0開頭的內(nèi)容 mysql > select * from test where id like "0%"; # 查看表test中前2行數(shù)據(jù) mysql> select * from test order by id limit 0,2; # 或者 mysql> select * from test limit 0,2;
但是實(shí)際的場景中我們常常需要進(jìn)行多表查詢,復(fù)雜的業(yè)務(wù)需求也會(huì)造成連接查詢也變得非常復(fù)雜,常用的多表查詢方式有連接查詢和子查詢,但是連接查詢的效率一般會(huì)比子查詢高,關(guān)于連接查詢可以參考下面這篇文章:
不過也有地方不建議使用連接查詢,因?yàn)檫B接查詢屬于重查詢,數(shù)據(jù)量大容易造成阻塞,比如阿里就明文規(guī)定禁止用三個(gè)表以上的join。做項(xiàng)目的時(shí)候應(yīng)該遵循重業(yè)務(wù),輕數(shù)據(jù)庫的原則,能在業(yè)務(wù)層聚合,就不要用跨表查詢。
6.刪除表數(shù)據(jù)
命令:delete from 表名 where 表達(dá)式
mysql> delete from test where id=001;
7.修改表數(shù)據(jù)
命令:update 表名 set 字段=新值 where 表達(dá)式
mysql> update test set name='admin' where id=002;
修改表結(jié)構(gòu):
# 修改test表中name字段的長度 mysql> alter table test modify column name varchar(30);
8.在表中增加字段
命令:alter table 表名 add字段 類型 其他;
# 在表test中添加了一個(gè)字段passtest,類型為int(4),默認(rèn)值為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. 增加用戶
# 增加一個(gè)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. 數(shù)據(jù)庫授權(quán)
命令:grant 權(quán)限 on 數(shù)據(jù)庫名.* to 用戶名@localhost identified by ‘密碼’;
# 授權(quán)test用戶擁有test_db庫的所有權(quán)限 grant all on test_db.* to test@localhost identified by '123456'; # 授權(quán)test用戶擁有test_db庫的select,update權(quán)限 grant select,update on test_db.* to test@localhost;
12. 鎖表
# 加讀鎖 mysql> flush tables with read lock; # 解鎖 mysql> unlock tables;
13. 查看當(dāng)前用戶
mysql > select user();
14. MYSQL密碼破解方法
先停止Mysql服務(wù),以跳過權(quán)限方式啟動(dòng),命令如下
service mysqld stop /usr/local/mysql/bin/mysqld_safe –user=mysql –skip-grant-tables &
在shell終端輸入mysql并按Enter鍵,進(jìn)入mysql命令行,由于MYSQL用戶及密碼認(rèn)證信息存放在mysql庫中的user表,需進(jìn)入mysql庫:
mysql> use mysql; mysql> update user set password=password('123456') where user='root'; mysql> flush privileges;
MYSQL root密碼修改完,需停止以Mysql跳過權(quán)限表的啟動(dòng)進(jìn)程,再以正常方式啟動(dòng)MYSQL,再次以新的密碼登陸即可進(jìn)入Mysql數(shù)據(jù)庫
15. 存儲(chǔ)引擎、系統(tǒng)版本、端口
# 查看當(dāng)前使用的存儲(chǔ)引擎 mysql > show engines; # 查看mysql默認(rèn)存儲(chǔ)引擎 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
到此這篇關(guān)于MySQL基本運(yùn)維命令的文章就介紹到這了,更多相關(guān)MySQL運(yùn)維命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Centos中安裝多個(gè)mysql數(shù)據(jù)的配置實(shí)例
最近因?yàn)閱挝豁?xiàng)目擴(kuò)充,需要在原線上數(shù)據(jù)庫服務(wù)器上加裝一個(gè)mysql實(shí)例(實(shí)際上就是從新編譯安裝一個(gè)非3306的自定義端口,不同目錄的mysql),研究了一天,終于順利搞定,這里把配置步驟發(fā)給大家,供大家學(xué)習(xí)使用2014-04-04Mysql version can not be less than 4.1 出錯(cuò)解決辦法
這篇文章主要介紹了Mysql version can not be less than 4.1 解決辦法的相關(guān)資料,需要的朋友可以參考下2016-10-10MySQL之information_schema數(shù)據(jù)庫詳細(xì)講解
這篇文章主要介紹了MySQL之information_schema數(shù)據(jù)庫詳細(xì)講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08mysql如何動(dòng)態(tài)創(chuàng)建連續(xù)時(shí)間段
這篇文章主要介紹了mysql如何動(dòng)態(tài)創(chuàng)建連續(xù)時(shí)間段問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01關(guān)于mysql?left?join?查詢慢時(shí)間長的踩坑總結(jié)
這篇文章主要介紹了關(guān)于mysql?left?join?查詢慢時(shí)間長的踩坑總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09詳解MySQL like如何查詢包含''%''的字段(ESCAPE用法)
這篇文章主要介紹了詳解MySQL like如何查詢包含'%'的字段(ESCAPE用法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12