python MySQLdb串連mysql時報錯

來源:互聯網
上載者:User

標籤:shel   nal   通過   mysqldb   ini   localhost   eve   unix   seve   

故障現象:

>>> import MySQLdb>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="tiange1003",db="tian",port=3306,charset="utf8")Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/usr/lib64/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect    return Connection(*args, **kwargs)  File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 193, in __init__    super(Connection, self).__init__(*args, **kwargs2)_mysql_exceptions.OperationalError: (2002, "Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)")

原因分析:

這裡主要是因為我們串連mysql的時候,host用的是localhost, 實際用的是UNIX Domain Socket來進行通訊的。我們知道,UNIX Domain Socket的地址是一個socket類型的檔案在檔案系統中的路徑,如果這個路徑不存在的話,串連的時候就會失敗。上面提示的錯誤原因是”Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)”,從字面意思上來看,是說無法通過’/var/lib/mysql/mysql.sock’這個socket來串連本地的mysql sever,這時候問題基本就比較明顯了,應該是mysql配置的本地串連的socket不是’/var/lib/mysql/mysql.sock’這個路徑的原因。接下來我們來驗證我們的想法,開啟mysql的設定檔(/etc/my.cnf),我們看到如下的內容:這裡主要是因為我們串連mysql的時候,host用的是localhost, 實際用的是UNIX Domain Socket來進行通訊的。我們知道,UNIX Domain Socket的地址是一個socket類型的檔案在檔案系統中的路徑,如果這個路徑不存在的話,串連的時候就會失敗。上面提示的錯誤原因是”Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)”,從字面意思上來看,是說無法通過’/var/lib/mysql/mysql.sock’這個socket來串連本地的mysql sever,這時候問題基本就比較明顯了,應該是mysql配置的本地串連的socket不是’/var/lib/mysql/mysql.sock’這個路徑的原因。接下來我們來驗證我們的想法,開啟mysql的設定檔(/etc/my.cnf),我們看到如下的內容:

解決方式:

1、查看/etc/my.cnf設定檔

[mysqld]datadir = /usr/local/mysql/datalog-error = /usr/local/mysql/data/error.logpid-file = /usr/local/mysql/data/mysql.piduser = mysqltmpdir = /tmp

在這個設定檔裡面添加

socket  = /tmp/mysql.sock

2、解決辦法:
>>> import MySQLdb>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="tiange1003",db="tian",port=3306,charset="utf8",unix_socket=‘/tmp/mysql.sock‘)

 

python MySQLdb串連mysql時報錯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.