MySQL报错server version for the right syntax to use near ‘EOF的解决方法
2023-12-03
重置mysql用户root密码时,编写shell脚本,遇到报错:
ERROR 1064 (42000) at line 3: 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 ‘EOF
echo “新密码:123456″‘ at line 1
提示信息是SQL语法错误,最后解决方法是:删除EOF后面的所有空格。
原因很简单:在脚本中,<<EOF
和 EOF
之间的文本块被视为一个整体,直到遇到 EOF
标记为止。如此,EOF后面不允许再跟其他内容,需要马上换行。
这是重置root密码的shell脚本,供参考
# 修改root用户密码
echo "原密码:$DB_PASSWORD"
# 5.6.51版本的MySQL使用`--alter-password`选项替代`--alter-user`选项来修改密码
mysql -u $DB_USER -p$DB_PASSWORD <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY '$NEW_PASSWORD';
FLUSH PRIVILEGES;
EOF
echo "新密码:$NEW_PASSWORD"
(版权归cpury.com所有,转载请注明出处。)