VPS侦探论坛

 找回密码
 注册
查看: 3160|回复: 2

版主请进:LNMPA+MySQL8.0使用 lnmp 命令无法创建数据库。

[复制链接]
发表于 2019-9-28 15:48:14 | 显示全部楼层 |阅读模式

具体情况描述:环境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的脚本流,导致数据库命令引入错误。
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2019-9-28 15:48:56 | 显示全部楼层


本帖最后由 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版本的判断而执行了下方的命令语句,所以才提示出错的。
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2019-9-28 19:52:57 | 显示全部楼层

是的lnmpa和lamp的脚本上漏掉了这个版本获取语句
感谢反馈
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-22 10:08 , Processed in 0.025280 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表