今天,我使用的mysql小機(jī)數(shù)據(jù)庫突然掛掉了。整個系統(tǒng)停止了工作,而且我無法通過調(diào)試來解決這個問題。于是我開始在網(wǎng)上搜索關(guān)于mysql小機(jī)數(shù)據(jù)庫掛掉的解決方案。
我發(fā)現(xiàn),經(jīng)常出現(xiàn)數(shù)據(jù)庫掛掉的一個原因是由于性能問題引起的。在我的情況下,我懷疑我的數(shù)據(jù)庫已經(jīng)超出了其設(shè)計(jì)的極限,而且由于一些操作導(dǎo)致了CPU和內(nèi)存使用過高。因此,我按照以下步驟來解決這個問題。
//停掉mysql服務(wù) sudo service mysql stop //找到mysql log文件 sudo grep 'ERROR' /var/log/mysql/error.log //根據(jù)log文件找到異常sql語句,并在數(shù)據(jù)庫中執(zhí)行 SELECT * FROM 表 WHERE id=xxx; //檢查磁盤使用情況和IO表現(xiàn) sudo du -sh /var/lib/mysql sudo iotop //清除緩存和日志文件 //在mysql中執(zhí)行以下命令 SET GLOBAL general_log = 'OFF'; SET GLOBAL slow_query_log = 'OFF'; SET GLOBAL innodb_buffer_pool_dump_now = 1; SET GLOBAL innodb_buffer_pool_load_now = 1; SET GLOBAL innodb_buffer_pool_dump_pct = 100; SET GLOBAL innodb_buffer_pool_dump_at_shutdown = 1; SET GLOBAL innodb_buffer_pool_load_at_startup = 1; SET GLOBAL innodb_flush_log_at_timeout = 1; SET GLOBAL innodb_flush_log_at_trx_commit = 0; SET GLOBAL general_log = 'ON'; SET GLOBAL slow_query_log = 'ON'; //使用以下命令清理日志文件和錯誤日志 sudo truncate --size=0 /var/log/mysql/error.log sudo truncate --size=0 /var/log/mysql/mysql-slow.log sudo truncate --size=0 /var/log/mysql/mysql-query.log
隨著執(zhí)行上述命令,我發(fā)現(xiàn)數(shù)據(jù)庫正常工作了,而且系統(tǒng)性能也恢復(fù)了??偟膩碚f,由于數(shù)據(jù)庫性能問題而導(dǎo)致的mysql小機(jī)數(shù)據(jù)庫掛掉是一種常見的問題,但是,通過一些簡單的調(diào)整,我們就可以輕松地解決這個問題。
上一篇css的 after
下一篇mysql小海豚不能自增