部署项目遇到的mysql问题以及解决方法

368 阅读1分钟

部署项目遇到的mysql问题以及解决方法

1、数据库报错: Expression #1 of ORDER BY clause is not in SELECT list, references column ‘oss_web.i.create_date’ which is not in SELECT list; this is incompatible with DISTINCT
 
 mysql数据库升级到5.7X以上后,不在支持 DISTINCT 要么修改sql代码要么修改mysql配置文件:
 vi /etc/my.cnf
 在 [mysqld] 和 [mysqld] 与 [mysqld_safe]  之间添加下面一行 
 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
 重启mysql
 service mysqld restart
 2、window下mysql默认表名不区分大小写,所以在程序中写表名大小写都能实现。linux系统下mysql表名区分大小写。所以要么程序中写正确,要么修改mysql配置
 vi /etc/my.cnf
 在 [mysqld] 和 [mysqld] 与 [mysqld_safe]  之间添加下面一行 
 lower_case_table_names=1
 重启mysql
 service mysqld restart


linux下mysql数据库表名区分大小写导致系统报错
vi /etc/my.cnf
在 [mysqld] 后 加上 lower_case_table_names=1
保存退出,重启mysql
 service mysqld restart
 
 
linux下mysql数据库默认链接数过小,没有及时把mysql链接释放调导致mysql链接数量过多报错
vi /etc/my.cnf
max_connections=1000
max_user_connections=500
wait_timeout=200
保存退出,重启mysql
service mysqld restart

linux下mysql默认安装盘符空间太小,手动修改mysql配置文件来修改数据库存储位置。
mkdir /usr/local/mysql
暂停mysql
service mysqld stop

vi /etc/my.cnf
添加下面配置:
datadir=/usr/local/mysql
socket=/usr/local/mysql/mysql.sock

保存退出,将原来mysql安装位置的文件全部拷贝到新建的文件目录下

重启mysql
service mysqld restart