mysql skip_counter_mysql的三个故障解决小结
mysql使用過程中經(jīng)常會(huì)遇到的三個(gè)故障,在此小結(jié)一下。
1、MySQl服務(wù)無法啟動(dòng)
我們?cè)谑褂胢ysql的過程中,常會(huì)遇到MySQl服務(wù)無法啟動(dòng),具體報(bào)錯(cuò)信息:Starting MySQL ERROR.The server quit without updating PID file (/[FAILED]l/mysql/)
對(duì)這樣的錯(cuò)誤,網(wǎng)上的分析解釋有很多,有人分析把skip-federated這個(gè)參數(shù)屏蔽就可以了,也有人認(rèn)為刪除mysql-bin.index這個(gè)文件就可以啟動(dòng)服務(wù)。或者檢查MYSQL日志,如果提示有參數(shù)配置錯(cuò)誤,也很容易導(dǎo)致這個(gè)錯(cuò)誤。
當(dāng)然導(dǎo)致此錯(cuò)誤的原因有很多,解決辦法也有很多,比較快速有效的解決辦法就是做好數(shù)據(jù)庫備份,然后只需如下兩步,就可快速使數(shù)據(jù)庫恢復(fù)正常。
進(jìn)入MYSQL安裝位置下的scripts目錄,執(zhí)行
./mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql ? ? (初始化MYSQL數(shù)據(jù)庫)
然后再執(zhí)行 ./mysqld_safe --user=mysql --datadir=/var/mysql/data?& ?(安全啟動(dòng)模式)
這時(shí)候就可正常啟動(dòng)MYSQL了。
(注:參數(shù)可根據(jù)mysql實(shí)際的安裝目錄和數(shù)據(jù)目錄進(jìn)行調(diào)整)
2、配置MYSQL同步時(shí)的Slave_IO_Running狀態(tài)異常
在配置MYSQL同步時(shí),叢機(jī)顯示:
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
確保兩臺(tái)MYSQL主機(jī)網(wǎng)絡(luò)是互通的。當(dāng)出現(xiàn)這種錯(cuò)誤時(shí),沒有顯示正常狀態(tài)的YES,這個(gè)問題主要是因?yàn)槭跈?quán)出現(xiàn)錯(cuò)誤或不匹配。
mysql>grant replication slave on *.*
to test@192.168.199.119 identified by 'test@123456';
比如授權(quán)的用戶不匹配或授權(quán)的從機(jī)IP不對(duì),都會(huì)出現(xiàn)Connecting這個(gè)顯示。
通過show slave status\G 命令,仔細(xì)觀察這兩個(gè)顯示狀態(tài),都為YES才正常。
3、配置MYSQL同步時(shí)的Slave_SQL_Running狀態(tài)異常
在配置MYSQL同步時(shí),叢機(jī)顯示:
Slave_IO_Running: YES
Slave_SQL_Running: No
這個(gè)問題一般有兩個(gè)原因:
A.程序可能在slave上進(jìn)行了寫操作
B.也可能是slave機(jī)器重起后,事務(wù)回滾造成的.
解決辦法一:
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; (在start slave時(shí),從當(dāng)前位置起,跳過一個(gè)event。)
mysql> slave start;
解決辦法二、
首先停掉Slave服務(wù):slave stop
到主服務(wù)器上查看主機(jī)狀態(tài):
記錄File和Position對(duì)應(yīng)的值
進(jìn)入master
mysql> show master status;
+----------------------+----------+--------------+------------------+
| File ? ? ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000009 | 33622483 | ? ? weichat ?| ?mysql,test ? ? ?|
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
然后到slave服務(wù)器上執(zhí)行手動(dòng)同步:
mysql> change master to
> master_host='master_ip',
> master_user='user',
> master_password='pwd',
> master_port=3306,
> master_log_file=localhost-bin.000009',
> master_log_pos=326 ;
1 row in set (0.00 sec)
mysql> slave start;
1 row in set (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
........
Master_Log_File: localhost-bin.000009
Read_Master_Log_Pos: 326
Relay_Log_File: localhost-relay-bin.000027
Relay_Log_Pos: 1014014
Relay_Master_Log_File: localhost-bin.000009
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: weichat
手動(dòng)同步需要先停止master的寫操作!
注:
Slave_IO_Running:連接到主庫,并讀取主庫的日志到本地,生成本地日志文件
Slave_SQL_Running:讀取本地日志文件,并執(zhí)行日志里的SQL命令。
解決MYSQL問題的思路:
1:首先檢查錯(cuò)誤日志,找到最近的錯(cuò)誤.查看問題出現(xiàn)在哪.
2:修改my.cnf中的參數(shù)配置,但是請(qǐng)注意,修改的時(shí)候一定要記清楚那些地方修改了,方便之后做出更加正確合理的修改.
在配置參數(shù)的時(shí)候一定要高度重視innodb引擎參數(shù)的配置,它是極易導(dǎo)致錯(cuò)誤的關(guān)鍵所在.
3、關(guān)鍵目錄的權(quán)限要注意
4:正常啟動(dòng)服務(wù).
不能正常啟動(dòng)MYSQL的原因有很多種,當(dāng)然具體問題要具體分析,不過分析錯(cuò)誤日志會(huì)幫助我們定位問題的原因,從而快速解決問題.
總結(jié)
以上是生活随笔為你收集整理的mysql skip_counter_mysql的三个故障解决小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《暗黑破坏神:不朽》手游国际服已开:仅需
- 下一篇: MySQL求类型为GX的平均积分_mys