从LAN访问sql数据库

时间:2015-05-06 09:48:19

标签: python mysql raspberry-pi

我的两台电脑通过局域网连接。 computer1(192.168.0.56)包含以下程序

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()

错误:访问被拒绝root@192.168.0.4

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您尚未添加端口,因此请先尝试添加端口 连接mysql的语法是
MySQLdb.connect(主机,用户名,密码的databaseName,端口)
如果它无法访问,那么, 您需要将mysql服务器访问设置从localhost更改为“*” 看看以下链接:
http://www.cyberciti.biz/faq/mysql-connection-from-other-machine/

答案 2 :(得分:0)

您应该创建一个可以使用主机192.168.0.4或%访问此数据库的新用户,因为默认情况下root只能从localhost使用。

答案 3 :(得分:0)

该错误意味着您可以从计算机192.168.0.4连接该数据库。您需要授予root用户@ 192.168.0.4

的访问权限

要确认,请使用查询检查有权登录数据库的当前用户和主持人:

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

如果您想授予其他用户访问权限,请在sql中使用GRANT命令:

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

这应解决您的问题