一、數(shù)據(jù)庫隔離級別
- 查詢數(shù)據(jù)庫當(dāng)前隔離級別
select @@tx_isolation;
`mysql8以上`:select @@transaction_isolation;
- 修改隔離級別
<!--
隔離級別:
READ-UNCOMMITTED(讀取未提交內(nèi)容)
READ-COMMITTED(讀取提交內(nèi)容)
REPEATABLE-READ(可重讀)
SERIALIZABLE(可串行化)
-->
set tx_isolation=‘READ-UNCOMMITTED’;
二、常用進(jìn)程、鎖命令
- 查看進(jìn)程id
show processlist;
或
SELECT * FROM information_schema.PROCESSLIST;
- 查詢正在執(zhí)行的進(jìn)程
SELECT * FROM information_schema.PROCESSLIST where length(info) >0;
- 查詢正在執(zhí)行的事務(wù)
<!--
trx_state:事務(wù)狀態(tài)
trx_start:事務(wù)開始時間
trxrequestedlockid:innodblocks.lock_id
trxwaitstarted:事務(wù)開始等待的時間
trxmysqlthread_id:事務(wù)線程id
trxtableslocked:事務(wù)擁有多少個鎖
trxisolationlevel:事務(wù)隔離級別
-->
SELECT * FROM information_schema.innodb_trx;
- 查詢是否鎖表
show OPEN TABLES where In_use > 0;
- 查看被鎖住的
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
- 查看等待鎖定的
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
- 殺掉鎖表進(jìn)程
kill 進(jìn)程id
- 查看鎖記錄等待時間
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';
三、mysql 允許特定IP訪問
- 測試是否允許遠(yuǎn)程連接
# 命令
telnet ip地址 mysql訪問端口號
# 出現(xiàn)以下命令說明不允許此ip訪問
host ip地址 is not allowed to connect to this mysql server
- 允許特定客戶端ip地址連接
# 登錄mysql
mysql -u root -p
Enter password:
# 使用mysql
mysql> use mysql
# 開放指定ip訪問數(shù)據(jù)庫權(quán)限
mysql> GRANT ALL ON *.* to root@'ip地址' IDENTIFIED BY '服務(wù)器mysql密碼';
# 刷新權(quán)限列表
mysql> FLUSH PRIVILEGES;
四、binlog
binlog有三種模式:ROW(行模式), Statement(語句模式), Mixed(混合模式)
1.ROW(行模式):記錄那條數(shù)據(jù)修改了,注意:記錄的是這條記錄的全部數(shù)據(jù),即使只更新了一個字段,binlog里也會記錄所有字段的數(shù)據(jù);
2.Statement(語句模式): 每一條會修改數(shù)據(jù)的sql都會記錄在binlog中;
3.Mixed(混合模式):在Mixed模式下,一般的語句修改使用statment格式保存binlog,如一些函數(shù),statement無法完成主從復(fù)制的操作,則采用row格式保存binlog,MySQL會根據(jù)執(zhí)行的每一條具體的sql語句來區(qū)分對待記錄的日志形式,也就是在Statement和Row之間選擇一種。
- 開啟和查看binlog
# 查看mysql的binlog模式
show variables like 'binlog_format'
# 查看mysql是否開啟binlog同步功能
show variables like 'log_bin';
- binlog相關(guān)命令
#獲取binlog文件日志列表
show binary logs
# 查看當(dāng)前正在寫入的binlog文件
show master status
# 查看master上的binlog文件
show master logs
#查看第一個binlog文件內(nèi)容
show binlog events
# 查看指定binlog文件內(nèi)容, 如:查看mysql-bin.000002文件內(nèi)容
show binlog events 'mysql-bin.000002'