2013-03-16 83 views
84

我在Mac OS X Mountain Lion上使用homebrew install mysql安裝了MySQL,但是當我嘗試mysql -u root時,我得到了出現以下錯誤:對於新手:ERROR 2002(HY000):無法通過套接字'/tmp/mysql.sock'連接到本地MySQL服務器

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

這個錯誤是什麼意思?我該如何解決它?

+2

沒有張貼它作爲一個答案,但你必須'安裝mysql-server'包藏漢,不只是'mysql' – 2013-03-16 13:57:05

+0

你說得對,手帕Panky,我發現了一個腳本,完全在我的系統(Mac OSX Mountain Lion)上安裝MySQL所需的全部內容,並且完成了這個任務。我一定錯過了幾件事。 – shrewdbeans 2013-03-18 10:01:04

+0

@shrewdbeans您發現哪些腳本完全安裝了所有MySQL依賴關係? – 2015-11-05 22:19:09

回答

55

這可能是因爲MySQL已安裝但尚未運行。

要驗證它是否正在運行,請打開活動監視器並在「所有進程」下,搜索並驗證您是否看到進程「mysqld」。

您可以通過安裝「MySQL.prefPane」來啓動它。

下面是完整的教程,幫助我: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html

+53

我剛剛運行了'mysqld',就是這樣,這是由於系統的某種_hard重置/關閉造成_poor關閉引起的問題。 – ProfNandaa 2015-10-19 12:08:25

+1

@ProfNandaa你救了我的日子! – KimCrab 2016-11-24 02:12:05

+0

@KimCrab - welcome :) – ProfNandaa 2016-11-26 03:30:32

38

運行:brew info mysql

並按照說明操作。從公式中的描述:

Set up databases to run AS YOUR USER ACCOUNT with: 
    unset TMPDIR 
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp 

To set up base tables in another folder, or use a different user to run 
mysqld, view the help for mysql_install_db: 
    mysql_install_db --help 

and view the MySQL documentation: 
    * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html 
    * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html 

希望這會有所幫助。

3

我找到了解決我的問題的方法。確實是因爲我的MySQL服務器沒有運行。

這是由於MySQL未在我的機器上正確設置而導致無法運行。

爲了解決這個問題,我使用了一個腳本,它在Mac OSX Mountain Lion上安裝MySQL,它必須安裝缺少的文件。

這裏是鏈接:http://code.macminivault.com/

重要提示:此腳本設置root密碼爲隨機生成的字符串,它節省了桌面,所以要小心不要刪除此文件,並注意密碼。它還會在您的系統首選項中安裝MySQL管理器。我也不確定是否刪除任何現有的數據庫,所以要小心。

22

正如其他人所指出的,這是因爲安裝了MySQL,但服務沒有運行。有很多方法可以啓動MySQL服務,下面是對我有用的東西。

要啓動服務:

  1. 進入「系統偏好設置」
  2. 在底部窗格中應該有MySQL的圖標。
  3. 雙擊即啓動 'MySQL服務器狀態',並按下按鈕 '啓動MySQL服務器'

我ENV:

的Mac約塞米蒂10.10。3

安裝包:/Volumes/mysql-advanced-5.6.24-osx10.8-x86_64

+0

我沒有找到它 – 2017-03-09 01:46:19

+0

@HosMercury你可以確認你已經安裝了MySQL – Ithar 2017-03-09 12:08:20

+0

我從官方的Mysql網頁下載並安裝mysql。這個解決方案適用於我。謝謝:) – 2017-07-20 03:04:52

11

在下面,我包括brew install mysql此問題可以受益,新的搜索最新的說明:

$ brew install mysql 
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz 
######################################################################## 100.0% 
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz 

To connect: 
    mysql -uroot 

To have launchd start mysql at login: 
    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents 
Then to load mysql now: 
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
Or, if you don't want/need launchctl, you can just run: 
    mysql.server start 

在我來說,我現在裝的MySQL通過launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist,然後能夠推出$ mysql和我的路。

我希望這可以幫助最近的疑難解答者!

+0

'mysql -u root' both works – atilkan 2016-09-09 13:28:49

37

您需要啓動MySQL,然後才能在終端上使用mysql命令。爲此,請運行brew services start mysql。默認情況下,brew不使用root密碼安裝MySQL數據庫。爲了確保它運行:mysql_secure_installation

連接運行:mysql -urootroot是這裏的用戶名稱。

23

家庭釀造安裝後,這很受歡迎。這是由於權限問題。以下命令解決了問題。

sudo chown -R _mysql:mysql /usr/local/var/mysql 

sudo mysql.server start 
+0

你真棒@nirojan,我正在將我的頭靠在牆上:thumsup: – 2018-02-19 07:33:30

0

在我的情況下,右鍵安裝MAMP從終端訪問mysql後給出了相同的套接字錯誤。最後,所有它想要的是重新啓動,它的工作。

1

對我來說是簡單的跑步:

/usr/local/opt/mysql/bin/mysqld_safe

,而不是mysqld

7

解決方案圍繞:

  • 改變MySQL的權限

    sudo chown -R _mysql:mysql /usr/local/var/mysql 
    
  • 啓動MySQL進程

    sudo mysql.server start 
    

只是爲了上了很多偉大的和有用的答案已提供here,並從許多不同的職位增加,嘗試指定的主機,如果上面的命令沒有解決這個問題給你,即

mysql -u root -p h127.0.0.1 
+0

對我來說這是權限問題 – pfwd 2017-07-06 08:27:15

5

看起來像你的mysql服務器沒有啓動。我通常運行停止命令,然後重新啓動它:

mysqld stop 
mysql.server start 

同樣的錯誤,這對我很有用。

6

這解決了我的問題,當我重新啓動mysql服務。只要運行:

brew services start mysql 
1

這方面的工作了幾個小時什麼工作對我來說是 去到/ etc/mysql /下和編輯my.cnf文件後。添加以下

[client] 
port = 3306 
socket = /var/run/mysqld/mysqld.sock 
+1

這對我也有竅門,雖然對於我來說也是如此我的os/mysql版本是:/etc/my.conf,並且套接字位於/var/lib/mysql/mysql.sock中 /var/log/mysqld.log應該指向套接字文件的位置。 – keithpjolley 2017-06-10 23:34:51

相關問題