您好,登錄后才能下訂單哦!
怎么處理MySQL數據庫相關異常,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
大家都明白,任何數據庫在使用過程中,發生異常是不可避免的。下面小編來講解下MySQL數據庫相關異常怎么處理?
問題一:啟動mysql時候出現StartingMySQL..Managerofpid-filequitwithoutupdatingf[失敗]StartingMySQL...Managerofpid-filequitwithoutupdating[失敗]
解決方案:
第一種:
1.刪除/usr/local/mysql/data/mysql-bin.*文件夾所有臨時文件數字后綴名。
2.重啟mysql(用二進制安裝后,重啟的方法)servicemysqldstart。
第二種:
編輯/etc/my.cnf添加:
[mysqld]datadir=/var/lib/mysql
MySQL服務器把數據庫存儲在由datadir變量所定義的目錄中。
查看已有進程之后殺掉:
ps-aux|grepmysql8016pts/200:00:00mysqld_safe8037pts/200:00:00mysqld
重啟mysql。
第三種:
在/etc/my.cnf中注釋掉
skip-federated=>#skip-federated
第四種:
有時候在/etc/my.cnf中設置了datadir=/var/lib/mysql重啟mysql就會出現這種錯誤。
若不單獨設置,mysql默認數據目錄為mysql安裝目錄下。
問題二:當讓系統自己生成庫時候,出現FATALERROR:Couldnotfind./bin/my_print_defaults。
解決方案:/usr/local/mysql/scripts/mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data
問題三:mysql_connect()[function.mysql-connect]:Can'tconnecttolocalMySQLserverthroughsocket'/var/lib/mysql/mysql.sock'(13)/eccore/model/mysql.php94或者StartingMySQL/etc/init.d/mysql:line327:--socket=/var/lib/mysql/mysql.sock。
解決方案:
1>加入如下代碼,讓mysql去tmp文件夾應用這個文件,以前默認為/var/lib/mysql/mysql.sock這個地址。
修改/etc/my.cnf
[mysql]socket=/tmp/mysql.sock
2>進入/tmp文件夾創建mysql.sock
touchmysql.sock
3>重啟mysql
/etc/init.d/mysqldrestart
MySQL數據庫相關異常怎么處理
問題四:A主機mysql訪問B主機mysql:mysql-uroot-proot-P3306-h292.168.100.52出現如下錯誤:ERROR2003(HY000):Can'tconnecttoMySQLserveron'192.168.100.52'(113)
解決方案:
1.服務器要能在網(公網)上被訪問到,如果有防火墻,要開放3306端口(MySQL默認的監聽端口);
關閉所有防火墻/etc/rc.d/init.d/iptablesstop
加入規則vim/etc/sysconfig/iptables
2.在mysql服務器上建立一個遠程用戶,最簡單的方式就是
grantALLPRIVILEGESon*.*tousername@"%"identifiedby"root"
問題五:出現MySQLserverhasgoneaway有幾種情況。
解決方案:
1、應用程序(比如PHP)長時間的執行批量的MYSQL語句。
解決方案:
在my.cnf文件中添加或者修改以下兩個變量:
wait_timeout=2880000interactive_timeout=2880000
關于兩個變量的具體說明可以google或者看官方手冊。
如果不能修改my.cnf,則可以在連接數據庫的時候設置CLIENT_INTERACTIVE,比如:
sql="setinteractive_timeout=24*3600";mysql_real_query(...)
2、執行一個SQL,但SQL語句過大或者語句中含有BLOB或者longblob字段。比如,圖片數據的處理。
解決方案:
在my.cnf文件中添加或者修改以下變量:
max_allowed_packet=10M(也可以設置自己需要的大小)
max_allowed_packet參數的作用是,用來控制其通信緩沖區的最大長度。
看完上述內容,你們掌握怎么處理MySQL數據庫相關異常的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。