gpt4 book ai didi

Python MySQLdb 脚本在 OS X 上正常工作,复制到 Linux 服务器时出现权限被拒绝错误

转载 作者:行者123 更新时间:2023-11-29 18:50:50 26 4
gpt4 key购买 nike

我编写了一个快速的 Python 脚本来自动为 friend 设置 WordPress 博客。我已经在我的 OS X 计算机上测试了该脚本,没有任何问题,但是当该脚本复制粘贴到 Linux 服务器并运行时,该脚本能够创建数据库,但是当它尝试创建用户并授予权限时我收到了

"_mysql_exceptions.OperationalError: (1044, "Access denied for user 
'root'@'XXX.XXX.XXX.XXX' to database 'livetest'")"

脚本是:

db = MySQLdb.connect(host="ip",  # your host
user="root", # username
passwd="password")
# password


# Create a Cursor object to execute queries.
cur = db.cursor()

# Select data from table using SQL query.

cur.execute("CREATE DATABASE IF NOT EXISTS " +blogshortstr)

cur.execute("GRANT ALL PRIVILEGES on " +blogshortstr +".*" + " " + "TO " +mysqluser+'@'+'ip'+ " " +'IDENTIFIED BY' + " " +mysqlpassword)

cur.execute("FLUSH PRIVILEGES")

db.commit()
db.close()

最佳答案

由于打字错误,我发现了另一篇帖子,最终偶然发现了问题。

事实证明,问题是双重的。

1) 当我启用远程登录时,它添加了第二个 root 帐户。虽然 root@localhost 用户具有授予选项,但我的 root@ip.addr 没有。 root@ip.addr 仍然可以创建和删除表。添加授予选项使其发挥作用。

2)至少对于这段代码和我使用的python模块(MySQLdb),模块的文档中没有记录用户名需要用反引号(QWERTY键盘上1旁边的键)而不是执行 GRANT ALL PRIVILEGES 时使用常规引号。我不知道为什么或者这对于任何语言的 MySQL 连接器来说是否是正常现象。

也许这很明显,而我是个白痴(这是我在 python 中做的第一件事,我几乎从未使用过 MySQL)。也许它会对某人有所帮助。

关于Python MySQLdb 脚本在 OS X 上正常工作,复制到 Linux 服务器时出现权限被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44364735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com