从局域网访问 sql 数据库



我的两台计算机通过局域网连接。 计算机 1(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

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

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

该错误意味着允许您从计算机 192.168.0.4 连接该数据库。您需要向根用户 @ 192.168.0.4 授予访问权限

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

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

如果要向其他用户授予访问权限,请在 sql 中使用GRANT命令作为:

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

这应该可以解决您的问题

您尚未添加端口,因此请先尝试添加端口。
连接mysql的语法是
MySQLdb.connect(host,userName,passWord,databaseName,port)
仍然如果它无法访问那么,
你需要将mysql服务器访问设置从localhost更改为"*"。
请看以下链接:
http://www.cyberciti.biz/faq/mysql-connection-from-other-machine/

最新更新