【问题标题】:Error 1064 (4200) - when I type in a GRANT ALL request in MySQL错误 1064 (4200) - 当我在 MySQL 中输入 GRANT ALL 请求时
【发布时间】:2017-02-15 22:56:56
【问题描述】:
GRANT ALL ON uesrName.* TO username@hostname.mysql.pythonanywhere-services.com;

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在“-services.co”附近使用正确的语法 m' 在第 1 行

谁能告诉我,是不是“-”导致我的请求失败。

我使用了 pythonanwhere.com 提供的正确用户名和主机名 执行此任务时,我正在使用 pythonanywhere.coms GUI。

【问题讨论】:

    标签: python mysql mysql-python


    【解决方案1】:

    GRANT 语句中的几个对象需要引用,尽管在许多情况下引用是可选的:帐户、数据库、表、列和例程名称。例如,如果帐户名称中的 user_name 或 host_name 值作为不带引号的标识符是合法的,则无需引用它。 但是,如果指定包含特殊字符(如 -)的 user_name 字符串,或包含特殊字符或通配符(如 %)的 host_name 字符串,则必须使用引号;例如,'test-user'@'%.com'。分别引用用户名和主机名。

    你必须引用主机名

    username@'hostname.mysql.pythonanywhere-services.com'
    

    不带引号:

    mysql> GRANT ALL ON uesrName.* TO username@hostname.mysql.pythonanywhere-services.com;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-services.com' at line 1
    

    带引号:

    mysql> GRANT ALL ON uesrName.* TO username@'hostname.mysql.pythonanywhere-services.com';
    Query OK, 0 rows affected (0.00 sec)
    

    【讨论】:

    • 谢谢张海峰 我猜它成功了,mysql> GRANT ALL ON databasename.* TO stringName@'stringName.mysql.pythonanywhere-services.com';错误 1044 (42000):用户 'stringName'@'%' 拒绝访问数据库 'EndaKeane$rockford911'
    • @Enda 没问题:) 请检查它作为答案。复选标记在我答案的左侧
    • 我现在只需要弄清楚为什么我的访问被拒绝了。
    • @Enda 从dev.mysql.com/doc/refman/5.7/en/grant.html 阅读有关GRANT 命令的更多信息,这会有所帮助
    猜你喜欢
    • 2020-04-02
    • 2015-01-09
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2015-06-21
    • 2011-08-17
    • 2011-02-11
    • 2015-07-03
    相关资源
    最近更新 更多