亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤:“無法通過套接字連接到本地MySQL服務器”/var/run/mysqld

錯誤:“無法通過套接字連接到本地MySQL服務器”/var/run/mysqld

我的問題首先是因為我無法在MySQL安裝上以root身份登錄。我試著在沒有打開密碼的情況下運行MySQL.。但是每當我運行命令# mysqld_safe --skip-grant-tables &我永遠也回不回提示符了。我試著跟著這些指示用于恢復密碼.屏幕就像這樣:root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables 120816 11:40:53 mysqld_safe Logging to syslog. 120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql我也沒有得到一個提示來開始輸入SQL命令來重置密碼。當我按下它克特 + C,我收到以下信息:error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!如果我重試該命令并保留足夠長的時間,就會得到以下一系列消息:root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog. 120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended [1]+  Done                    mysqld_safe --skip-grant-tables root@jj-SFF-PC:/run/mysqld#但是,如果我嘗試以root用戶身份登錄,請執行以下操作:# mysql -u root我收到以下錯誤消息:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)我查過了/var/run/mysqld/mysqld.sock文件不存在。文件夾有,但沒有文件。另外,我不知道這是否有幫助,但我跑了find / -name mysqld它想出了:/var/run/mysqld - folder /usr/sbin/mysqld - file /run/mysqld - folder我對Linux和MySQL并不熟悉,所以我不知道這是否正常。但我把這個信息包括進來以防萬一有幫助。最后,我決定卸載并重新安裝MySQL。apt-get remove mysql-server apt-get remove mysql-client apt-get remove mysql-common apt-get remove phpmyadmin在phpmyadmin安裝過程中,在按照與上面相同的順序重新安裝所有包之后,我得到了相同的錯誤:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)因此,我再次嘗試卸載/重新安裝。這一次,在卸載包之后,我還手動將所有MySQL文件和目錄重命名為mysql.bad在各自的地點。/var/lib/mysql  /var/lib/mysql/mysql /var/log/mysql /usr/lib/perl5/DBD/mysql /usr/lib/perl5/auto/DBD/mysql /usr/lib/mysql /usr/bin/mysql /usr/share/mysql /usr/share/dbconfig-common/internal/mysql /etc/init.d/mysql /etc/apparmor.d/abstractions/mysql /etc/mysql然后我試著重新安裝mysql-server和mysql-client再來一次。但我注意到它并沒有提示我輸入密碼。不是應該問管理員密碼嗎?
查看完整描述

3 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

要查找系統上的所有套接字文件,請運行:

sudo find / -type s

我的mysql服務器系統將套接字打開在/var/lib/mysql/mysql.sock

一旦找到打開套接字的位置,使用套接字文件的路徑將行添加或編輯到/etc/my.cnf文件中:

socket=/var/lib/mysql/mysql.sock

有時,啟動命令行可執行文件的系統啟動腳本指定一個標志。--socket=path..此標志可能覆蓋my.cnf位置,這將導致找不到my.cnf文件所指示的套接字。然后,當您嘗試運行MySQL命令行客戶機時,它將讀取my.cnf來查找套接字,但是它不會找到它,因為它偏離了服務器創建套接字的位置。因此,除非您關心套接字駐留在何處,否則只需將my.cnf更改為匹配即可。

然后,停止mysqld過程。您如何做到這一點將因系統而異。

如果您是Linux系統中的超級用戶,如果您不知道MySQL安裝程序使用的具體方法,請嘗試以下方法之一:

  • service mysqld stop

  • /etc/init.d/mysqld stop

  • mysqladmin -u root -p shutdown

  • 有些系統的設置并不是為了有一種優雅的方式來阻止MySQL(或者由于某種原因MySQL沒有響應),您可以強制使用以下兩種方法來終止MySQL:
    • 查找mysql的進程id

      pgrep mysql

      ps aux | grep mysql | grep -v grep

    • 假設進程id是

      4969

      終止于

      kill -9 4969

    • 一步:

      pkill -9 mysqld

    • 兩個步驟(最不可取):

執行此操作后,您可能需要在/var/run/mysqld/并刪除它

確保您的套接字上的權限能夠使用戶mysqld運行的任何用戶都可以對其進行讀/寫。一個簡單的測試是打開它進行完整的讀/寫,看看它是否仍然有效:

chmod 777 /var/run/mysqld/mysqld.sock

如果這解決了問題,您可以根據需要根據您的安全設置調整套接字的權限和所有權。

此外,運行mysqld進程的用戶必須能夠訪問套接字所在的目錄。


查看完整回答
反對 回復 2019-07-13
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

試試這個命令,

sudo service mysql start


查看完整回答
反對 回復 2019-07-13
?
森林海

TA貢獻2011條經驗 獲得超2個贊

此錯誤是由于MySQL的多個安裝造成的。運行命令:

ps -A|grep mysql

使用以下方法終止進程:

sudo pkill mysql

然后運行命令:

ps -A|grep mysqld

還可以通過運行以下操作來終止此進程:

sudo pkill mysqld

現在您已經完全設置好了,只需運行以下命令:

service mysql restart
mysql -u root -p

再次很好地使用MySQL


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 2355 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號