MySQL_ERROR 2002 (HY000): Can't connect to local MySQL server through socket


報錯

當我使用命令 mysql -uproot -proot 去連接 MySQL 服務器端的時候,發現了這個報錯

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

問題描述

MySQL 在 Linux 創建連接的時候,需要一個 mysql.sock。它相當於一個配置文件。當你發現爆這個錯的時候,大約有兩種情況:

  1. 你沒有打開這個文件的權限。可以通過命令行修改權限
  2. 這個文件不存在,你可以自己去創建

如果上述情況都不同,建議去查看 MySQL 的日志文件。(如果你沒修改過的話,一般路徑是:/var/log/mysqld.log)

解決方案

首先明確的是,無論是 MySQL 服務器還是客戶端,都需要連接這個文件。所以在這個文件里邊,肯定包括了 mysqldmysql 的相關參數。

mysqld

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

重點是 socket 的值。我們將 mysqld 的數據指定了一個路徑,而其 sock 文件也將會在這個目錄下,但是記得需要保證您有該文件夾的權限。

mysql

[client]

default-character-set=utf8

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

[mysql]

default-character-set=utf8

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

這個是 mysql 命令行及外來連接的一個配置。你會發現這個 sock 的路徑和上面的 mysqld 路徑是一樣的。那這樣就很好理解了,客戶端的連接配置肯定與服務端一樣,才能連接得上。

結尾

無論你是用了 mysql 還是 mysqld 得命令,我們都記得需要重啟才能生效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM