ECJiaWiki:关于安装时MySQL报错的解决方案

来自ECJiaWiki
跳转至: 导航搜索

错误案例

安装 ECJia到家时出现的 MySQL 报错:

关于安装时MySQL报错的解决方案01.png

什么原因

MySQL5.6以前与MySQL5.6.6以后的sql_mode配置参数不一致,这些参数的变化导致 sql 语句执行出现问题。之前一些不太规范的写法在5.6之前都可以使用,但是在5.6.6以后 sql_mode参数的改变使不规范的 sql 语句都不能使用,导致报错。


如何解决

1.执行SQL 语句(临时解决方案)

输入 mysql -u root -p 进入 mysql,输入如下语句

set sql_mode ='';


执行语句前

关于安装时MySQL报错的解决方案02.png

执行语句后

关于安装时MySQL报错的解决方案03.png

2.修改配置文件解决(永久解决方案)

1.Linux:修改 /etc/my.cnf 配置文件为如下:

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION 

2.Windows:修改 my.ini (一般会在mysql安装目录的根目录)配置文件为如下:

[mysqld]
sql-mode="NO_ENGINE_SUBSTITUTION"

3.更换 MySQL 版本(永久解决方案)

通过更换 MySQL 版本为5.5,无需修改配置文件或者执行 SQL 语句就可以解决该问题。


4.修改默认安装时间限制

修改安装时间限制,默认为60秒,可以修改为0,不限制时间,找到以下文件位置:content/apps/installer/index.php。

关于安装时MySQL报错的解决方案04.png



以上无法解决

1、在 MySQL 中,后面的配置会覆盖前面的配置,所以修改依次查找并修改下面文件中出现的 sql_mode


/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf

2、检测根目录写入权限,可能是因为根目录没有写入权限,导致无法生成 .env 文件