《mysql問題排查過程》要點:
本文介紹了mysql問題排查過程,希望對您有用。如果有疑問,可以聯系我們。
導讀:建了兩個用戶,一個laravel,一個blog用戶以及他們的同名數據庫.建好之后,命令行下面連接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新老版本還切換了不同的數據驅動文件.
排查問題的時候還是別搞幺蛾子了,一點點慢慢排查.
我有時候有點受虐傾向,就是喜歡走彎路去排查問題.
轉載請注明本頁網址:
http://www.fzlkiss.com/jiaocheng/5545.html