文章詳情頁
mysql 可以從 TCP 連接但是不能從 socket 鏈接
瀏覽:94日期:2022-06-21 17:14:57
問題描述
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ’/var/run/mysqld/mysqld.sock’ (2)
服務器上的 mysql 原本是正常的,突然本地無法從 socket 進行連接,也沒有 mysqld.sock 文件。本地和遠程通過 tcp 都是可以鏈接的。
我現在修復了,但是不確定是不按照如下方式修復的(可能是湊巧了),大家可以試試。
刪除/var/lib/mysql 下的文件,然后重啟服務。sudo find / -type s 就可以找到 mysql.sock了,根據其位置重新設置一下ini 文件中的路徑但是這樣會導致 innodb損毀出現表找不到。所以要先備份。
問題解答
回答1:mysql> show variables like '%sock%';
看一下mysql啟動的時候sock文件放到哪里了,本地使用mysql客戶端連接的時候 -S /tmp/mysql.sock指定。如果這個文件不存在要么被誤刪、要么沒權限寫,看一下mysql日志。
輕易就把/var/lib/mysql數據文件目錄給刪了,服了
回答2:表述有問題吧,socket不是對tcp/ip的一層封裝么?
回答3:看看文件還在不在,有沒有權限,是不是和MySQL的設置一致。如果以前是好的,那么不排除被誤刪除或更改了權限的可能。
相關文章:
1. mysql優化 - mysql count(id)查詢速度如何優化?2. mysql主從 - 請教下mysql 主動-被動模式的雙主配置 和 主從配置在應用上有什么區別?3. angular.js - angularjs 用ng-reapt渲染的dom 怎么獲取上面的屬性4. 主從備份 - 跪求mysql 高可用主從方案5. css3 - [CSS] 動畫效果 3D翻轉bug6. node.js - node_moduls太多了7. angular.js - Angular路由和express路由的組合使用問題8. python如何不改動文件的情況下修改文件的 修改日期9. python - django 里自定義的 login 方法,如何使用 login_required()10. angular.js - 不適用其他構建工具,怎么搭建angular1項目
排行榜
![css3 - [CSS] 動畫效果 3D翻轉bug](http://www.aoyou183.cn/attached/image/news/202304/110831f073.png)