我的两台电脑通过局域网连接。 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
答案 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>
这应解决您的问题