版主请进:LNMPA+MySQL8.0使用 lnmp 命令无法创建数据库。
具体情况描述:环境LNMPA(lnmp1.6),使用lnmp vhost add 或 lnmp database add 时,添加完虚拟机后,数据库只创建了数据库用户名,但没有创建成功用户数据库。并在终端返回如下错误提示: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 'IDENTIFIED BY '我的数据库密码''在排查时发现对应lnmpa的操作脚本(/bin/lnmp)的410行与412行的下方没有获取 MySQL_Ver= 这个变量,导致后续脚本无法判断当前数据库版本。
而在执行后续的添加数据库脚本中确存在版本判断关系。因为执行脚本时MySQL_Ver这个变量是空的,所以不会执行对应8.0的脚本流,而错误的使用了旧版5.x的脚本流,导致数据库命令引入错误。
本帖最后由 wangweida 于 2019-9-28 15:55 编辑
我自己自行按lnmp脚本中的参数在补全后,现在操作正常。如下:
Check_DB()
{
if [[ -s /usr/local/mariadb/bin/mysql && -s /usr/local/mariadb/bin/mysqld_safe && -s /etc/my.cnf ]]; then
MySQL_Bin="/usr/local/mariadb/bin/mysql"
MySQL_Ver=`/usr/local/mariadb/bin/mysql_config --version`#在lnmpa环境的/bin/lnmp脚本中对应添加此行;
elif [[ -s /usr/local/mysql/bin/mysql && -s /usr/local/mysql/bin/mysqld_safe && -s /etc/my.cnf ]]; then
MySQL_Bin="/usr/local/mysql/bin/mysql" #在lnmpa环境的/bin/lnmp脚本中对应添加此行;
MySQL_Ver=`/usr/local/mysql/bin/mysql_config --version`
else
MySQL_Bin="None"
fi
}
不知道这样做是否正确,请版主指正
原因分析:应该是因为"/usr/local/mysql/bin/mysql_config --version"获取到了版本,但是没有参数来接收变量(lnmp命令的脚本内使用了MySQL_Ver来接收变量),而导致执行脚本否定上8.0版本的判断而执行了下方的命令语句,所以才提示出错的。
是的lnmpa和lamp的脚本上漏掉了这个版本获取语句
感谢反馈
页:
[1]