無法透過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

 

創作者介紹
創作者 Wayne Technique Study 的頭像
Wayne

Wayne Technique Study

Wayne 發表在 痞客邦 留言(0) 人氣( 1665 )