我知道的有兩種可能,1 之前的mysql沒有卸載干凈,產(chǎn)生沖突。解決:卸載mysql后,重新安裝。
成都創(chuàng)新互聯(lián)公司專注于都安企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開發(fā)。都安網(wǎng)站建設(shè)公司,為都安等地區(qū)提供建站服務(wù)。全流程按需設(shè)計網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
2 在dos下面輸入 netstat ,查看3306端口有沒有被占用。如果被占用,則找到占用的服務(wù),停止他。如果找不到,在安裝mysql時更改默認(rèn)的3306端口。
可能是存儲過程中的語句有問題,可以嘗試檢查一下存儲過程中的語句,看看是否有語法錯誤或者邏輯錯誤。另外,也可以嘗試把存儲過程中的語句一條一條地執(zhí)行,看看哪一條語句出現(xiàn)了問題。
服務(wù)器mysql數(shù)據(jù)庫老自動停止是因為在設(shè)置時出現(xiàn)了問題,解決方法為:
1、首先登陸服務(wù)器。
2、登陸MySQL數(shù)據(jù)庫;命令如下:mysql -u root -p pwd。
3、查詢MySQL數(shù)據(jù)庫是否允許遠(yuǎn)程ip訪問。
4、開啟遠(yuǎn)程訪問操作。命令如下:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '111qqqpwd' WITH GRANT OPTION;FLUSH PRIVILEGES。
5、打開navicate客戶端,新建mysql鏈接。
6、輸入遠(yuǎn)程MySQL數(shù)據(jù)庫鏈接信息,點擊測試鏈接。數(shù)據(jù)庫鏈接成功。
注意事項:
MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。
一、my.cnf配置文件datadir項配置錯誤或被啟動腳本篡改
這個問題不太說講,主要是mysql自帶的啟動文件(/etc/init.d/mysqld)中會自動檢測mysql的數(shù)據(jù)存儲目錄,若mysql新裝,尚未初始化系統(tǒng)表,那么配置文件中的datadir項寫不寫無所謂,出現(xiàn)這種情況主要是在更改了mysql的數(shù)據(jù)存儲目錄,今天我出現(xiàn)的這個問題就在于此。
我的mysql安裝后的配置文件中關(guān)于datadir項目的配置如下,而該配置文件存儲于/etc/my.cnf,今兒不知動了什么東西,查來查去都沒找著原因,后來打開該配置文件才發(fā)現(xiàn),其中的datadir項目被篡改成/var/mysql/data了.....
[mysqld] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql
二、進(jìn)程里已經(jīng)存在mysql進(jìn)程
這種情況我很少遇到,若存在mysql進(jìn)程但有不提供mysql服務(wù)(表現(xiàn)為其他客戶端連接不上mysql服務(wù)器,例如php連接mysql時提示“連接失敗”),這個時候就要看看有沒有存在的mysql僵尸進(jìn)程了,命令如下:
ps -ef|grep mysql
若存在,該命令執(zhí)行后會列出存在的僵尸進(jìn)程,kill -9 `pid`掉即可。
三、mysql的數(shù)據(jù)存儲目錄權(quán)限不足
這種情況發(fā)生于mysql第一次安裝或升級,配置文件中的datatdir目錄的權(quán)限要設(shè)定好,一般來說運行mysql的用戶以及組就是mysql.mysql,那么解決權(quán)限不足問題的方法如下:
chown -R mysql.mysql /data/mysql ##該命令僅為示例,其中/data/mysql就是mysql配置文件中datadir的目錄 ##若為空,則默認(rèn)為mysql安裝目錄下的data文件夾下
四、覆蓋安裝或升級mysql后,殘余數(shù)據(jù)的影響
這種情況發(fā)生于mysql被覆蓋安裝或升級后,當(dāng)然mysql無故宕機后也會有這種情況,可能會影響mysql啟動的數(shù)據(jù)文件,一般存在于mysql的數(shù)據(jù)存儲目錄(這個目錄依據(jù)my.cnf配置文件中的datadir而異),也就是存在于mysql數(shù)據(jù)存儲目錄下的mysql-bin.index文件,刪除之即可。
五、selinux的問題,centos下最容易出現(xiàn)
selinux不甚了解,直接關(guān)掉。
##方法1:永久關(guān)閉seliux ##修改 vi /etc/selinux/config #文件中設(shè)置SELINUX=disabled ,然后重啟服務(wù)器 ##方法2:暫時關(guān)閉seliux setenforce 0 ##如需每次開機都鈴聲關(guān)閉seliux,則可以在/etc/rc.d/rc.local文件中添加該命令
六、mysql運行狀態(tài)下刪除binary日志后重啟失敗
這是今天在群里的一個朋友出現(xiàn)的,特匯總于此;當(dāng)mysql開啟了二進(jìn)制日志并且mysql在運行狀態(tài)下用rm命令刪除過mysql的binary日志文件的話,下次重啟mysql你就悲劇了。
什么是binary日志?說白了就是mysql的數(shù)據(jù)目錄下的mysql-bin.000001、mysql-bin.000002的文件,下圖所示。
解決方法就是修改配置文件臨時關(guān)閉binary-log,然后刪除mysql數(shù)據(jù)目錄下的所有類似mysql-bin.000001、mysql-bin.000002的文件后再次重啟,mysql即可啟動成功。
#mysql配置關(guān)閉二進(jìn)制日志 找到如下語句 注釋掉即可 #log-bin=mysql-bin #binlog_format=mixed
此步驟操作完畢之后,若還需要啟用二進(jìn)制日志,那么就要先停掉mysql服務(wù),然后修改msyql的配置文件,再次重啟即可。
另外再附上正確刪除mysql二進(jìn)制日志文件的方法(絕對不是rm -rf命令直接刪這些文件):
#第一步 通過shell或cmd登錄進(jìn)mysql 這步?jīng)]什么好說的 msyql -u root -p *** #第二步 在mysql下直接執(zhí)行清理binary日志命令 mysql reset master #注意:此處僅針對單臺mysql而言,若有互備mysql 則執(zhí)行該命令有風(fēng)險