我试图自动化MySQL用户创建过程。 我想创建一个包含MySQL用户创建语句的临时文件, 然后我将像这样调用它:
mysql -u root -proot < temp
但是我卡在了MySQL语法上: 以下是我的临时文件的内容:
DROP DATABASE IF EXISTS mytestdatabase;
CREATE DATABASE mytestdatabase;
SELECT @password:="my password";
DELETE FROM mysql.user WHERE Host='localhost' AND User='mytestdatabase';
GRANT ALL PRIVILEGES ON mytestdatabase.* TO 'mytestdatabase'@'localhost' IDENTIFIED BY PASSWORD '@password';
FLUSH PRIVILEGES;
但是这行代码GRANT ALL PRIVILEGES ON mytestdatabase.* TO 'mytestdatabase'@'localhost' IDENTIFIED BY PASSWORD '@password';
(密码哈希应该是一个41位十六进制数)
它的解释不符合我的预期。 即使我移除@password标签周围的单引号,仍然会有错误(语法错误)。
我该如何让这个工作?