十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
windows無法啟動MySQL服務可能的原因有一下幾種:
銅官網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)。
mysql配置文件設置錯誤
A、首先查找mysql對應的配置文件my.ini
如果服務是使用指定的配置文件啟動,到對應的文進行修改(文件的位置從控制面板中服務的屬性中查看)
B、檢查參數(shù)basedir和datadir對應的目錄是否存在,如:
basedir = d:/mysql/
datadir = d:/mysql/data/
檢查Mysql目錄有沒有給系統(tǒng)的System用戶文件讀寫權限(一般以System用戶啟動mysql服務)
檢查mysql的3306端口是否被占用,如果占用,則修改my.ini配置文件中端口參數(shù),將端口修改為其他值。
mysql的數(shù)據(jù)庫文件遭到破壞。
MySQL卸載時一些信息不會自動刪除,導致服務的路徑設置不對導致的。檢查注冊表,路徑見下圖左下角的路徑信息,把ImagePath改成你現(xiàn)在的路徑。
啟動Mysql提示ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxx.local.pid).
1、查看mysql錯誤日志:打開/usr/local/var/mysql/xxxx.err或者xxxx.local.err文件。
2、問題應該是某個程序占用了mysql的默認端口3306。
3、查看端口使用情況lsof -i:3306,發(fā)現(xiàn)是一個用戶名為_mysql啟動了mysqld指令占用了3306,感覺現(xiàn)象非常奇怪,不清楚為什么會有這個用戶組,為什么會啟動mysqld,由于這個電腦是公司其他同事轉移資產到的我名下,所以有可能是之前用戶或者公司it裝了什么服務導致的。
4、首先嘗試干掉進程:sudo kill xxxx,結果發(fā)現(xiàn)當kill后,還會重新啟動。
5、嘗試修改mysql默認啟動端口,Baidu上有人告訴修改/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist文件
添加string--port=3307/string保存,先重新啟動mysql服務,發(fā)現(xiàn)問題依然存在,發(fā)現(xiàn)配置沒有起作用,默認端口依然是3306,然后考慮重新啟動電腦,看看是否可以修改占用默認端口的配置。
6、重啟后再次查看3306端口占用情況,發(fā)現(xiàn)確實不存在了。但是發(fā)現(xiàn)啟動mysql服務時,依然存在問題:
仔細觀察發(fā)現(xiàn),這個占用和plist中的mysql配置一樣的,所以可以確定每次啟動計算機后,會按默認配置執(zhí)行一個mysqld。
7、不清楚為什么會按com.oracle.oss.mysql.mysqld.plist配置執(zhí)行mysqld,于是把注意力放在了Mac啟動上。
8、Mac的啟動原理是:
看到這里就明白了,原來LaunchDaemons里面放的是Mac啟動時的一些啟動服務,
9、System/Library和/Library和~/Library目錄的區(qū)別:
10、System/Library和/Library和~/Library目錄的區(qū)別:
11、有了上面的結果,于是把注意力放在了com.oracle.oss.mysql.mysqld.plist上,每個Mac啟動中都有么,這個是如何添加的。首先查看了家里的其他蘋果電腦,發(fā)現(xiàn)都沒有這個plist文件,于是開始研究這個文件的產生原因。
12、經(jīng)過Baidu懷疑這個文件應該是之前用dmg安裝包安裝的mysql產生的,在設置中也發(fā)現(xiàn)了殘留信息
于是果斷把自動啟動去掉,重啟計算機。
13、重啟后,發(fā)現(xiàn)無論是3306還是3307端口上都沒有mysql服務了,于是運行mysql.server start,這次終于看見了Starting MySQL . SUCCESS!
14、刪除com.oracle.oss.mysql.mysqld.plist文件,重啟電腦后,發(fā)現(xiàn)設置中仍然還有MySQL的控制選項。
15、MySQL dmg安裝方式的卸載方法:
至此,這個問題算是完美解決了。
MySQL 啟動失敗的最常見的原因有兩類,分別是無法訪問系統(tǒng)資源和參數(shù)設置錯誤造成的,下面分別分析如下。
MySQL 不能訪問啟動需要的資源是造成而 MySQL 無法啟動的一個常見原因,如:文件,端口等。由于 linux 中用于啟動 mysqld 進程的 mysql 用戶通常是不能登陸的,可以使用類似下面的命令檢查文件的訪問權限。
找出問題后,修改對應文件或目錄的權限或屬主后通??梢越鉀Q問題。但有時 mysql 用戶有訪問文件和目錄的權限,但仍然會被拒絕訪問,例如下面這個例子:
測試說明 mysql 用戶有這個目錄的訪問權限,但創(chuàng)建文件還是失敗,這種情況讓很多人困惑,這個時候通常是 mysqld 進程的訪問被 linux 的 selinux 或 apparmor 給阻止了,大家可以看到創(chuàng)建的表不是在 mysql 的默認目錄下面,因此 selinux 或 apparmor 的 policy 里面沒有包含這個目錄的訪問權限,此時只要對應的修改 policy 就行了,當然把 selinux 或 apparmor 停了也行。
有時雖然對系統(tǒng)資源有訪問的權限,但系統(tǒng)資源已經(jīng)被占用:
這個故障產生的原因是另外一個 mysqld 進程已經(jīng)啟動并占用了對應的文件。
參數(shù)設置錯誤造成 MySQL 無法啟動的原因也非常常見,此時先要檢查 MySQL 啟動時會調用的參數(shù),下面的命令可以查詢 MySQL 啟動時調用參數(shù)文件的順序:
知道了 MySQL 參數(shù)文件的調用順序,我們就可以檢查對應的參數(shù)文件,找出其中的錯誤,如果覺得參數(shù)文件的可讀性不強,可以使用下面的命令顯示 mysqld 程序將要調用的參數(shù):
注意這個命令顯示完參數(shù)后就退出,不會真正運行 mysqld。這個命令和 my_print_defaults mysqld 完全是等價的,只不過后者的顯示方式是一行一個參數(shù)。
然后開始對可疑的參數(shù)進行調試,我個人喜歡加的參數(shù)和順序如下:
看這個例子:
看這個例子,我們很容易知道是需要我們同時設置參數(shù) GTID_MODE 和 ENFORCE_GTID_CONSISTENCY 同時為 on 才行。