现在我不是MySQL专家,但我已经使用它好了5 - 6年,我从来没有碰到过这个:
mysql -u root -pSUPER_SECRET_PASSWORD
CREATE USER 'magical_username'@'locahost' IDENTIFIED BY 'super_magical_password';
现在这是奇怪的地方。我希望查询能够正常工作,我可以继续授予权限,但是,我得到了这个:
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 'USER 'magical_username'@'localhost' IDENTIFIED BY 'super_magical_password' at line 1
有什么想法吗?
答案 0 :(得分:4)
这不是一个真正的答案,而是解决问题的方法:
事实证明,神奇的系统管理员,尽管他的智慧,认为复制MySQL的原始数据库文件而不是进行转储和导入是一个好主意。这与错误的权限和MySQL版本相结合,意味着MySQL在用户和授权方面存在很大问题,但提供数据很好(这就是为什么它看起来很奇怪)。
长话短说:重建盒子并以正确的方式导入数据:)
答案 1 :(得分:2)
我遇到了完全相同的问题。对我来说,这是因为我使用了更老的MySQL安装 - 版本4.1.20。 CREATE USER语法仅在5.x版中引入。对于较旧的4.x数据库,您需要使用类似
的内容GRANT ALL PRIVILEGES ON horsedb.* TO 'mrhorse'@'localhost' IDENTIFIED BY 'pass123'
答案 2 :(得分:0)
等效的GRANT USAGE ON ...
版本有效吗?