無法透過Python遠端連入MySQL
- Problems:
Python連不進去MySQL,出現Error Message:
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'ip address' (111)")
- Sol:
因為 root 帳號預設只能透過 localhost 來連,所以必須建立一帳號wayne21205, 限制可存取的IP為 140.115.XXX.XXX,且可存取的DB為OVS,Table為所有,密碼為xxxxx
shell> mysql --user=root -p
輸入密碼
mysql> use mysql
mysql> GRANT ALL ON OVS.* TO 'wayne21205'@'140.115.%.%' identified by 'xxxxxx';
新增一個wayne21205使用者,密碼為xxxxxx,他可以存取OVS資料庫中的所有Table,
且限制IP為140.115開頭的IP Address
語法和前一個很像,db_name.table_name 可改成 db_name.* 甚至是 *.*,
OVS.* 的意思是可以存取OVS資料庫中的所有資料表
這樣就能產生一個新的使用者且對 ALL (SELECT, UPDATE, DELETE......) 的操作有權限了。
儲存設定!!
mysql> FLUSH PRIVILEGES;
Sol: 做完以上步驟後,Python還是連不進去的~!!還必須做以下步驟:
更改MySQL組態檔
vim /etc/mysql/my.cnf
更改default只bind在localhost的MySQL設定
#bind-address = 127.0.0.1
bind-address = 140.115.xxx.xxx (改成你所使用的實體IP)
測試:
在安裝了MySQL的主機中輸入指令
# mysql --host=140.115.xxx.xxx -u wayne21205 –p
若可以進入MySQL,則代表成功摟!!
參考:
http://blog.toright.com/archives/1214
http://werdna1222coldcodes.blogspot.tw/2011/09/mysqlmessage-from-server-host-xxx-is.html
http://stackoverflow.com/questions/1164033/python-mysql-connection-problem
請先 登入 以發表留言。