mysql脚本奇怪的问题,linux下执行SQL脚本的问题

最底部是SQL脚本 sqlscipt.sql 的内容,我把这个sql脚本放到shell脚本中取执行
myshellscript.sh:
……
mysql < sqlscript.sql #mysql最初没有密码
……

结果是前面的操作都起作用了,就是红色SET 这一段没有起作用。

而我重新尝试,单独拿sqlscript.sql 出来,在linux命令行输入mysql < sqlscript.sql ,结果是正确的。也就是全部都起作用了,这是为什么?
手动输入 和脚本执行 有什么不一样吗?

DELETE FROM mysql.user WHERE user.User not in ('root') or user.Host not in ('localhost');

SET PASSWORD = PASSWORD('mypassword');

GRANT ALL ON *.* TO 'intr-user'@'localhost' IDENTIFIED BY 'mypassword';

GRANT SELECT ON *.* TO 'remote-user'@'%' IDENTIFIED BY 'yourpassword';

FLUSH PRIVILEGES;

[color=#FF0000] SET GLOBAL WAIT_TIMEOUT = 24*24*60*60;
SET GLOBAL INTERACTIVE_TIMEOUT = 24*24*60*60;
SET GLOBAL BULK_INSERT_BUFFER_SIZE = 16777216;
SET GLOBAL MAX_ALLOWED_PACKET = 16777216;[/color]

CREATE DATABASE WFMONITOR_DATABASE;

第1个回答  2014-10-22
mysql <<EOF
source sqlscript.sql;
quit
EOF

这样试试

相似回答