继this link的指示,我尝试使用下面的语法使用密码MySQL的 - 脚本与哈希密码创建用户和数据库
DROP DATABASE IF EXISTS forum;
CREATE DATABASE forum;
DELETE FROM mysql.user WHERE Host='localhost' AND User='forum_admin';
#In this way, the password will not be logged in mysql history
SELECT @password:=PASSWORD('forum_admin');
GRANT ALL PRIVILEGES ON forum.* TO 'forum_admin'@'localhost' IDENTIFIED BY PASSWORD '@password';
FLUSH PRIVILEGES;
但是创建一个用户,在倒数第二个指令给出了这样的错误
ERROR 1827 (HY000): The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.
那么,我该如何解决?我不想手动插入SELECT @password
的结果(例如here或here例如),但我想使用这些结果自动创建一个新用户。
哦,等等,现在看来只是一个愚蠢的问题:S根本没有注意到密码项目。 顺便说一句,在我的回答 的第一个链接的评论“这是不太安全,因为密码可以以清晰的形式出现在mysql历史文件中。”它不真实吗? – tigerjack89 2014-12-02 19:06:32
@ tigerjack89亚这是一个很好的观点...创建一个文件,将其命名为createUser.sql ...将所有提到的查询写入它...保存....通过命令行加载SQL文件.. 。mysql -uroot -p databasename
2014-12-02 19:22:20
@ tigerjack89 ...上面提到的问题解决了您的问题,将其标记为已回答:)谢谢 – 2014-12-02 19:23:02