Mysql錯誤“'無法透過套接字'/var/run/mysqld/mysqld.sock'(13)連接到本地MySQL伺服器'”並且我也無法重置root密碼

Mysql錯誤“'無法透過套接字'/var/run/mysqld/mysqld.sock'(13)連接到本地MySQL伺服器'”並且我也無法重置root密碼

我嘗試運行的幾個命令出現以下錯誤,並且每次提示時我都不知道密碼。 (注意:我剛剛將我的 ubuntu 發行版更新到 22.04,但我之前沒有設定密碼/'root' 的密碼為空)。

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)'

從大多數帖子看來,常見問題是 mysql-server 實際上並未運行。不過,我可以看到我的正在運行,並且sudo service mysql status以下命令返回...

$ cat /etc/services | grep 3306
    mysql           3306/tcp
$  netstat -tulpn | grep 3306
    (No info could be read for "-p": geteuid()=1000 but you should be root.)
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -
    tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN  

這些命令給出“無法連接...”錯誤:

  • mysqladmin -u root -p 關閉
  • mysqladmin 版本
  • mysql
  • mysql -u 根目錄
  • mysql -u root -h localhost -p

運行mysql -u root -h 127.0.0.1 -p似乎有效,因為它提示我輸入密碼,但我之前的密碼都不起作用,並且我無法運行sudo mysqld_safe --skip-grant-tables &sudo mysqld_safe --skip-grant-tables --skip-networking &成功重置根密碼。

我也跑過...

附加隨機資訊:

我也知道/var/run/mysqld/mysqld.sock這個過程的早期確實存在(我現在在該目錄中只有 mysql.bak ),但是當我運行時sudo find / -type s,它只返回一堆帶有“權限被拒絕”的文件/目錄(我假設是因為我在WSL),所以我沒有檢查某處是否可能有另一個 mysql.sock 。

我還知道它/etc/mysql/my.cnf只是指向 -> /etc/alternatives/my.cnf,其中只有以下內容(除了一些註釋):

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

答案1

  1. 停止 MySQL(sudo systemctl stop mysql)
  2. 驗證進程已停止
  3. 使用 --skip-grant-tables 啟動 MySQL

或清除 mysql: sudo apt purge mariadb-server mysql-common 驗證 /etc/mysql 和 /var/lib/mysql 為空/已刪除

重新安裝

相關內容