當前位置:
首頁 > 知識 > 一次花費了一兩個小時的mysql問題排查

一次花費了一兩個小時的mysql問題排查

晚上把博客遷了個伺服器,新建用戶的時候遇到問題了。 關於mysql的問題。

前置操作

建了兩個用戶,一個laravel,一個blog用戶以及他們的同名資料庫。 建好之後,命令行下面連接mysql服務,都能正常登錄,並且也都能連上各自的資料庫。

問題體現

之前laravel用的root賬號,這次建好laravel用戶之後,改了laravel的配置文件,laravel的服務一切正常 但是blog用戶能在終端登錄,代碼不能連接資料庫。

1.開始以為是用戶許可權沒設置好1.1 重新設置許可權給blog用戶,還是不行。1.2 根據mysql官方文檔刪除用戶之後,重建blog用戶。 竟然還是不行!1.3 剛好在遷移博客的時候從GitHub拉了typecho的新代碼,這個時候以為是typecho升級造成的問題,那麼就別升級了,直接用新代碼新安裝。竟然還是不行!!

** 期間經歷了重啟php-fpm,重啟mysql等各種亂七八糟的操作之後還是沒解決。** 那就只能看看調試信息了。

2.調試

typecho只提示連接資料庫失敗,上伺服器改了下install.php文件,把具體的異常列印出來。

異常中說SQLSTATE[HY000] [2002] No such file or directory,好,那就搜一下。

3.搜索

好多人都說連接資料庫的時候把localhost改成127.0.0.1就可以解決。但如果就這麼解決了多沒意思

有人提到是socket文件不對。看了下php.ini,配置文件中的選項是空的,注釋掉的。

解決解決A

這裡其實應該有解決辦法了,就是去改php.ini,設置默認的socket。

但還是不想這麼簡單的解決問題,就繼續往下查了。

解決B

(這裡還走了一個彎路,以為是socket文件不對,刪掉sock文件,重啟mysql,發現還是不行。)

執行ps aux | grep mysql,看到

mysql 11964 02:48 0:01 /usr/sbin/mysqld --basedir=... --socket=/var/lib/mysql/mysql.sock

連接mysql,執行mysql> show variables like "%sock%",結果:

+-----------------------------------------+---------------------------+
| Variable_name | Value |
+-----------------------------------------+---------------------------+
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | -1 |
| socket | /var/lib/mysql/mysql.sock |
+-----------------------------------------+---------------------------+

看了下php的配置php -i | grep socket

pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock

這裡可以看到mysql的socket設置和php是的socket是不對應的。 這裡用了一個比較二的方法。直接在/tmp建立了一個軟連接到實際的sock,能運行了。

後期的猜測與疑問

1.為什麼laravel能正常跑而typecho不行呢?

猜測:typecho用的是pdo,會需要這個socket,laravel沒用這個。

在調試期間也用phpstorm自帶的資料庫連接器連接也失敗,如果是這種猜測的話為什麼phpstorm也失敗,莫非phpstorm用的連接內核也是PDO?

2.為什麼他們把localhost改成127.0.0.1就行? 這個問題就太專業了,不知道了。

巴拉巴拉

中途還慘雜著切換typecho各種試,typecho新老版本還切換了不同的數據驅動文件。

排查問題的時候還是別搞幺蛾子了,一點點慢慢排查。

我有時候有點受虐傾向,就是喜歡走彎路去排查問題。

從頭至尾總共能花了兩個多小時吧。。 現在時間2017-07-30 03:45

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

springboot用thymeleaf模板的paginate分頁
MySQL系列(三)——索引

TAG:科技優家 |

您可能感興趣

三招幫你排查Linux中的硬體問題
Linux系統下,web網站訪問失敗的問題排查
如何三招幫你排查Linux中的硬體問題
指檢是最有性價比的檢查!一次就能排查4個問題
找不到牙痛的原因,難怪一直複發!6個問題逐一排查
10個哺乳的媽媽,有一半都患有這種病,哺乳期一定要注意排查
系統運行緩慢,CPU 100%,以及Full GC次數過多問題的排查思路
深入 SpringBoot : 怎樣排查 expectedsinglematchingbeanbutfound 2 的異常
oom-killer故障排查
小腿關節痛,離不開3個原因,最好逐一排查一下!
windows入侵排查思路
一次離奇的DHCP故障排查
突然「停經」太揪心,醫生提出了4個可能,要一一排查
想要新家萬無一「濕」嗎?下面這些項目一定要逐一排查好!
一次驚心動魄的問題排查
WordPress 惡意代碼的分析和排查方法
MySQL DeadLock故障排查過程
醫生告誡:「胰腺癌」4個隱匿的癥狀,只要發現一個,請及時排查!
如果出現這個一定要排查胰腺癌!
不查不知道,一查嚇一跳!美軍排查F35零部件供應情況,結果亮了