2015-05-06 106 views
2

我的兩臺計算機通過局域網連接。電腦1(192.168.0.56)包含ffollowing程序從局域網訪問sql數據庫

import MySQLdb 
db= MySQLdb.connect("localhost","root","pass","testDB") 
cursor=db.cursor() 
cursor.execute("DROP TABLE IF EXISTS USER") 
sql="""CREATE TABLE USER(
    ID INT(12) NOT NULL AUTO_INCREMENT, 
    USERNAME VARCHAR(20) NOT NULL, 
    PASSWORD VARCHAR(20) NOT NULL, 
    PRIMARY KEY (ID) 
    )""" 
cursor.execute(sql) 
db.close() 

從另一個(192.168.0.4)我想插入值表

import MySQLdb 
db= MySQLdb.connect("192.168.0.56","root","pass","testDB") 
cursor=db.cursor() 
sql="""INSERT INTO USER(USERNAME, 
    PASSWORD) 
    VALUES('admin','12345'), 
     ('abc','123'), 
     ('user3','5687')""" 
try: 
cursor.execute(sql) 
db.commit() 
print ("Data is inserted into database") 
except: 
db.rollback() 
print ("Data cann't be updated") 
db.close() 

錯誤另一臺計算機:拒絕訪問[email protected]

回答

0
Try to use port 
as, 
db= MySQLdb.connect("192.168.0.56:8080","root","pass","testDB") 
+0

我嘗試了錯誤:未知MySQL服務器主機 –

+0

檢查你的mysql正在運行哪個端口,使用該端口!所有最好:) –

+0

現在試試這個(與端口3306作爲默認的MySQL端口) db = MySQLdb.connect(「192.168.0.56:3306」,「root」,「pass」,「testDB」) –

0

您還沒有添加端口,因此請先嚐試添加端口。
語法,用於連接MySQL的是
MySQLdb.connect(主機,用戶名,密碼的databaseName,端口)
不過如果它不能訪問的話,
你需要從本地主機更改MySQL服務器的訪問權限設置爲「*」。
看一看下面的鏈接:
http://www.cyberciti.biz/faq/mysql-connection-from-other-machine/

0

您應該創建誰也因爲默認的根訪問這個數據庫與主機192.168.0.4或%,新用戶只能從本地主機使用。

0

該錯誤表示您被允許從計算機192.168.0.4連接該數據庫。如果你想給訪問

SELECT `Host`, `User` FROM `mysql`.`user`; 

:你需要訪問權限授予root用戶@ 192.168.0.4

要進行確認,請檢查當前用戶和誰有權訪問使用查詢登錄到數據庫主機給其他用戶,然後在SQL中使用GRANT命令:

GRANT ALL PRIVILEGES ON <database_name> TO <user>@<ipadress> 

這應該解決您的問題