2014-09-20 45 views
66

我知道存在類似的問題,例如MySQL with MAMP does not work with OSX Yosemite 10.10。但是,我的計算機上安裝了MAMP,也沒有安裝XAMPP。將OSX升級到Yosemite或El Capitan時MySQL不啓動

當我嘗試從PrefPane啓動mySQL時,沒有任何反應。

當我試圖通過sudo /usr/local/mysql/support-files/mysql.server start我得到的命令行啓動mqSQL:

Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/mysql/data/adamg.local.pid).

任何和所有幫助將不勝感激。我可以提供任何必要的文件輸出。

+1

有關如何在Yosemite中使用launchd啓動MySQL的詳細信息,請參見[在本文中](http://stackoverflow.com/q/26461173/1922144)。 – davidcondrey 2014-10-21 03:12:13

回答

26

通過安裝最新的MySQL版本,這裏http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/

編輯
按照指示作爲優勝美地變得更加流行的解決,越來越多的人絆倒在這個問題上。上面的答案與升級MySQL有關,因此它可以運行。 @doc在評論中鏈接的答案與讓MySQL自動啓動有關。這是兩個不同的問題。

+3

'sudo /usr/local/mysql/support-files/mysql.server start'是在文章中找到的答案,它解釋了當前版本的MySQL中自動啓動腳本失敗。爲了讓MySQL在啓動OSX時自動加載,請參閱:http://stackoverflow.com/a/26492593/922522 – Justin 2014-10-21 17:48:14

+2

值得一提的是,mysql.com的安裝程序將以「安裝失敗」信息。實際上,軟件本身已經安裝好了。唯一的問題是「重新啓動MySQL」腳本。@Ares(也在Cool Guides文章中提到)的答案中提到了與plist相關的技巧,修復了這一問題。 – Trutane 2014-11-11 01:42:26

5

.pid是正在運行的mysql服務器實例的processid。它在MySQL運行時出現在數據文件夾中,並在mysql關閉時自行刪除。

如果OSX操作系統升級並且mysql沒有正常關閉之前升級,mysql在退出時會退出,因爲.pid文件退出。

有幾個技巧你可以嘗試,http://coolestguidesontheplanet.com/mysql-error-server-quit-without-updating-pid-file/失敗這些需要重新安裝。

+0

這不是問題,但是謝謝 – 2014-10-20 21:03:45

59

長話短說,你需要創建一個啓動文件。所以,從終端:

sudo vi /Library/LaunchDaemons/com.mysql.mysql.plist

(如果你不熟悉VI,然後按開始插入文本)

這應該是你的文件的內容:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict> 
    <key>KeepAlive</key> 
    <true /> 
    <key>Label</key> 
    <string>com.mysql.mysqld</string> 
    <key>ProgramArguments</key> 
    <array> 
     <string>/usr/local/mysql/bin/mysqld_safe</string> 
     <string>--user=mysql</string> 
    </array> 
    </dict> 
</plist> 

esc然後wq輸入

然後,您需要爲該文件提供正確的權限並將其設置爲在啓動時加載。

sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist 
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist 
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist 

就是這樣。

+2

該文件的前兩行應該是: '<?xml version =「1.0」encoding =「UTF-8」?>' '<!DOCTYPE plist PUBLIC「 - // Apple // DTD PLIST 1.0 // EN「」http://www.apple.com/DTDs/PropertyList-1.0.dtd「>' – tfentonz 2014-11-05 02:52:03

+1

我實際上必須選擇我的答案,以避免混淆。這個問題不是讓mySQL自動啓動。相反,這是因爲mySQL需要升級。你的答案肯定適用於前者,儘管 – 2014-11-11 16:09:00

+0

@Adam_G在我的情況下我沒有升級MySQL。在升級到優勝美地之前,我一直使用相同的版本。 – Ares 2014-11-11 17:33:56

3

重新安裝修復它,因爲安裝程序創建了一個新的MySQL實例,並且現在指向/ usr/local/mysql的符號鏈接指向沒有現有pid的數據目錄。

值得注意的是,mysql prefpane和mysql.server腳本使用pid的主機名,所以更改主機名可能會導致此問題。

雖然prefpane已過時,但即使自動啓動功能不起作用,對於某人啓動/停止MySQL也是一個不錯的GUI。

我已經採取了一種混合方法,我已經調整了我的MySQL安裝腳本以使用Launchd來自動啓動MySQL,但plist實際上調用了mysql.server腳本。這樣,預製面板仍然可以用於按需啓動/停止MySQL,並且嘗試執行簡單的MySQL重新啓動不會太混亂。

這裏是腳本,只是使在優勝美地這個launchd的行爲與MySQL已經安裝: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/YosemiteLaunchd.sh

這裏是處理MySQL的整個自動化系統中的腳本: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/mmvmysql.sh

+0

非常感謝你@Jon。我嘗試了以上所有的東西,但他們都沒有讓我的電腦上的mysql工作。所以我完全清理了我在系統中找到的有關mysql的所有內容,並運行了安裝腳本,這有助於!這只是一個救命! – yeelan 2015-03-11 20:29:49

2

有時你會懷念以前的數據如果您嘗試安裝新版本..請在終端中使用以下內容,我保證mySql將立即開始運行..

sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start 

請記住,它會問你的機器密碼,而不是MySQL的密碼..

75

打開一個終端:

  1. 檢查MySQL的系統首面板,如果它說沿線「警告的東西,在/ usr /本地/ mysql /下數據不會被 'MySQL的' 或 '_mysql'

  2. 如果是,進入到mysql文件夾CD的/ usr /本地/ MySQL的國有

  3. 個做須藤喬敦 - R的_mysql數據/

  4. 這將改變在/ usr /本地/ mysql /下數據的所有權及其所有內容由用戶_mysql'

  5. 檢查MySQL的自己系統預製面板,它應該說它現在正在運行,自動神奇地。如果不能再次開始。

  6. 另一種方式來確認是做一個

    的netstat -na | grep的3306

應該說:

tcp46  0  0 *.3306     *.*     LISTEN 

要看到的mysqld進程所有者和進程ID:

ps aux | grep mysql 
+8

謝謝,這也適用於OSX 10.11 El Capitan。 – 2015-10-12 03:41:08

+1

謝謝。這工作像一個魅力! – Das 2016-01-04 12:47:52

+0

第二次我升級我的其他機器時偶然發現了這個答案。再次感謝! – Catfish 2016-01-07 19:16:37

1

試試這個:

sudo mysqld_safe & 
+1

自己的代碼塊通常不是有用的答案。如果你可以請編輯你的答案,並解釋你所展示的代碼是做什麼的,以及爲什麼/如何代碼回答這個問題,這真的可以幫助。 – 2015-02-05 20:08:28

+0

這樣做的竅門:-)謝謝 – 2016-03-09 10:13:43

1

最簡單的方法是:複製並粘貼這個int o終端(但請務必先閱讀更多內容):

bash <(curl -Ls http://git.io/eUx7rg) 

這將自動安裝和配置所有內容。該腳本由MacMiniVault提供,可在Github上獲得。有關http://www.macminivault.com/mysql-yosemite/上的mySQL安裝腳本的更多信息。

4

你只需要創建用戶mysql(mysql安裝腳本創建_mysql),其中包含_mysql

更改爲複製線_mysqlmysql

sudo /usr/local/mysql/support-files/mysql.server start 
Starting MySQL 
.. SUCCESS! 

sudo vipw

重複的行

1

你想修復它可以使用TextEdit創建dit文件「/ Applications/XAMPP/xamppfiles/xampp」。

查找文本「$ XAMPP_ROOT/bin/mysql.server start>/dev/null &」
並在上面添加「未設置DYLD_LIBRARY_PATH」。它應該看起來像:

未設置DYLD_LIBRARY_PATH
$ XAMPP_ROOT /斌/的mysql.server啓動>的/ dev/null的&

希望能幫助你

1

無工作上面的..但安裝MySQL的新版本的確有竅門。

2

我在Mac上遇到了MySQL的類似問題(Mac OS X無法啓動MySQL服務器,原因:255,也是「錯誤!服務器退出而沒有更新PID文件」)。長期試錯的過程後,終於以恢復該文件的權限,我只是做:

*啓動磁盤Utilities.app
*我選擇左側面板上的驅動器
*點擊「修復磁盤權限」按鈕

這對我來說伎倆。

希望這可以幫助別人。

+0

謝謝!這現在對我有用 – 2016-01-17 14:51:08

34

在我來說,我固定它做一個小的權限更改:

sudo chown -R _mysql:_mysql /usr/local/var/mysql 
sudo mysql.server start 

我希望它可以幫助別人......

注:按梅特Mertin評論:

對於el capitan,它是sudo chown -R _mysql:_mysql/usr/local/var/mysql

+1

這對我有幫助。謝謝 – Koder 2015-09-08 07:38:20

+1

謝謝,爲我工作!我正在修復根據自制程序的權限問題,但它與安裝在/ usr/local中的其他內容不兼容。 順便說一句,我的命令是:sudo chown -R _mysql:_mysql/usr/local/mysql/ – rlorenzo 2015-09-30 06:38:16

+1

對於el capitan,它是sudo chown -R _mysql:_mysql/usr/local/var/mysql – 2016-01-18 16:00:53

0

2步解決我的問題:

1)刪除 「/Library/LaunchDaemons/com.mysql.mysql.plist」

2)重新啓動約塞米蒂

0

我通常通過鍵入

啓動MySQL服務器
$ mysql.server start 

沒有sudo。但是在錯誤之前,我在命令前鍵入sudo。現在我必須刪除錯誤文件來啓動服務器。

$ sudo rm /usr/local/var/mysql/`hostname`.err 
7

執行命令行下面的命令......

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 

,然後開始使用

sudo /usr/local/mysql/support-files/mysql.server start 
0

我的Mac決定隨機重新啓動本身的MySQL服務器;導致整個錯誤。其中之一,是mysql拒絕正確啓動。我經歷了許多SO問題/答案以及其他網站。

最終什麼最終解決MY問題是這樣的:

1)創建文件(/usr/local/mysql/data/.local.pid

2)搭配chmod 777該文件

3)執行的mysql.server啓動(礦位於在/ usr/local/bin目錄/ mysql.server的 )

0

同樣發生在我身上!所以我試圖在終止正在運行的mysql應用程序後再次啓動,並且工作正常!

相關問題