本文所講均為弹灭,日常工作中常用到的sql語句污茵,另外也是為了節(jié)省多次書寫耗時所創(chuàng)作舞肆。
查看當前使用的數(shù)據(jù)庫:
select database();查看當前登錄的用戶:
select user();連接服務中參數(shù)的疑問(mysql -h ip -Pport -u user -p -A)
-h == --host
:主機名的值
-P == --port
:指明端口(默認使用3306)
-u == --user
:指明登錄的用戶
-p == --password
:指明密碼(可以明文:-p123456)
-A
:具體意思我也不太清楚主穗,在讀一個大庫的時候茎刚,show所有的表讀不出來,提示我加這個參數(shù)谎僻。ssl參數(shù)本人自己也不太明白娄柳。
是否有
desc table;
報錯的情況:
ERROR 1105 (HY000): Proxy Warning - near "desc": syntax error
;
以及show columns from table;
報錯:
ERROR 1105 (HY000): Proxy Warning - near "columns": syntax error
;
沒關系:請看MySQL官方給出的解釋:錯誤、錯誤代碼及常見問題--5.7版本艘绍、
錯誤赤拒、錯誤代碼及常見問題--8.0版本。索引常見操作:
type[]:
1.PRIMARY KEy(主鍵索引)
2.UNIQUE(唯一索引)
3.INDEX(普通索引)
4.FULLTEXT(全文索引)
CUD:
1.增加:ALTER TABLE table_name
ADD type['index'] (column
);
2.修改:MySQL中貌似沒有這個操作诱鞠,那么就上下聯(lián)動先刪除后增挎挖。
3.刪除:ALTER TABLE table_name
DROP type['index'] (column
);
復制表:
僅結構:create table table1 select * from table2 where 1=2;
結構+數(shù)據(jù):create table table1 select * from table2;
導入導出:
導出:mysqldump -u root -p passwd dbname tableName>nice.sql;
(單張表)
導出的文件是二進制的文件查看的時候需要做格式轉換: Windows下需要將mysql的bin目錄添加到環(huán)境變量path中并且以管理員的身份運行cmd
mysqlbinlog --base64-output=decode-rows -v --start-datetime="2018-05-14 07:44:00" --stop-datetime="2018-05-14 07:45:00" ./mysql-bin.000561 > sql561.sql
另外--base64-output
的參數(shù)(也就是對應bin-log文件的三種格式)有:['NEVER','AUTO','UNSPEC','DECODE-ROWS']。清空表航夺,并且主鍵值回到起點
TRUNCATE TABLE tablename;
(此處讓我想起Linux中的truncate -s 0 filename
命令)蕉朵;-
運維/維護時常用語句:
-
查看MySQL所有進程-->表:
show processlist;
(只能查詢出info(簡略查詢進程信息))orshow full PROCESSLIST ;
(完整的進程信息,例如要查看較長的info字段內容)阳掐; -
查詢是否鎖表:
show OPEN TABLES where In_use > 0;
-
被鎖住的:
show OPEN TABLES where In_use > 0;
-
等待鎖定:
show OPEN TABLES where In_use > 0;
-
統(tǒng)計數(shù)據(jù)庫有多少張表:
SELECT COUNT(*) FROM information_schema.TABLES where TABLE_SCHEMA = 'dbName';
-
統(tǒng)計一張表中有多少字段:
select count(*) from information_schema.COLUMNS where TABLE_SCHEMA='dbName' and TABLE_NAME='tableName';
(COLUMNS需要加``) -
查看是否開啟了操作日志系統(tǒng):
show variables like '%log_bin%';
-
查看用戶擁有的權限:
show grants for 用戶名;
-
連接(遠程連接mysql時)出現(xiàn)錯誤提示:Table ‘performance_schema.session_variables’ doesn’t exist:
運行mysql_upgrade -u root -p --force始衅,輸入密碼后。然后重啟MySQL服務缭保。 -
配置文件所在地:/etc/mysql/mysql.conf.d/mysqld.cnf或者/etc/mysql/my.cnf汛闸。
- 再來點福利,快速連接集群中的數(shù)據(jù)庫或者項目中的多種數(shù)據(jù)庫中的某個艺骂。
(db.sh)中的IP都是亂打的诸老,不要去浪費時間。
#!/bin/bash
#filename:db.sh
#description:選擇需要連接的數(shù)據(jù)庫
#author:leeboot
#email:leeboot@163.com
echo "Select db to connect:"
echo " [1] test-data"
echo " [2] test-data2"
echo " [3] nice"
read -p "type a number, then press RETURN: " num
case $num in
1)
echo "Connect to PostgreSQL test-data:"
psql -h rm-2zedasd64510sed6o.pg.rds.aliyuncs.com -p 3433 -U test_data
;;
2)
echo "Connect to PostgreSQL test-data2:"
psql -h 199.168.123.11 -p 3433 -U test_data
;;
3)
echo "Connect to Mysql nice(with user leeboot):"
mysql -A -h 127.0.0.1 -u leeboot -p crawler_queue
;;
esac
- 持續(xù)更新钳恕,更新+2别伏。