Ubuntu下Python使用MySQLdb遠程鏈接數據庫的常見問題及解決方案

本文基於http://www.cnblogs.com/fnng/p/3565912.html這篇博文,學習使用MySQLdb過程當中遇到下面這些問題。

 

1. 安裝MySQLdb時運行sudo python setup.py install報錯EnvironmentError: mysql_config not found

在安裝 mysql-python時,會出現:html

sh: mysql_config: not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

緣由是沒有安裝:libmysqlclient-devpython

sudo apt-get install libmysqlclient-dev

本身電腦上作到這裏就完成了。原文裏還有如下步驟,若是仍是不能安裝能夠試試。mysql

找到mysql_config文件的路徑sql

sudo updatedb
locate mysql_config

mysql_config的位置爲:/usr/bin/mysql_config數據庫

在mysql-python源碼包下找到:setup_posix.py 文件,而後找到文件中的 mysql_config.path 將其值改成:/usr/bin/mysql_config,而後 sudo python setup.py install ,就ok了服務器

參考文獻:http://www.cnblogs.com/xiazh/archive/2012/12/12/2814289.htmlapp

 

2.import MySQLdb UserWarning錯誤

緣由是,install後MySQLdb模塊已經被放到python的site-pachages目錄中;但在當前目錄也存在相同的模塊,因此可能會重複導入。只要切換到其餘目錄運行就能夠了。學習

參考文獻:http://blog.csdn.net/jiang1013nan/article/details/6270791this

 

3. 遠程鏈接報錯ERROR 1130: Host '115.1XX.X.3' is not allowed to connect to this MySQL server

1。 改表法。多是你的賬號不容許從遠程登錄,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,從"localhost"改稱"%" spa

use mysql;
update user set host = '%' where user = 'root';

 

2. 受權法。例如,你想myuser使用mypassword從任何主機鏈接到mysql服務器的話。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH 
GRANT OPTION;

若是你想容許用戶myuser從ip爲192.168.1.3的主機鏈接到mysql服務器,並使用mypassword做爲密碼

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED 
BY&nbsp;<BR>'mypassword' WITH GRANT OPTION;

 

本人使用第一種方法成功了。

參考文獻:http://blog.csdn.net/july_2/article/details/41896295

 

4.ERROR 2003 (HY000): Can't connect to MySQL server on '10.16.XXX.XXX' (111)

可能使用了bind_address=127.0.0.1(固然也能夠是其餘ip)

[mysqld] 
bind_address=127.0.0.1

經過查看了my.cnf文件,註釋掉這一句再重啓mysql服務便可。

也多是其餘問題,詳見參考文獻:http://blog.csdn.net/qustdjx/article/details/26937325/

 

5.修改了my.cnf後如何重啓mysql服務?

中止mysql:

方式一:sudo /etc/init.d/mysql stop 

方式二:sudo stop mysql 

方式三:sudo service mysql stop (親測可行)

重啓mysql:

方式一:sudo/etc/init.d/mysql restart

方式二:sudo restart mysql

方式三:sudo service mysql restart

 

參考文獻:http://www.2cto.com/database/201305/207791.html

相關文章
相關標籤/搜索