2015-05-06 107 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> 

这应该解决您的问题