@[TOC]mysql安装运行在linux遇到的问题总结
1、外网navicat连接问题
配置防火墙端口:
启动防火墙:systemctl start firewalld
停止防火墙: systemctl stop firewalld
检查防火墙状态: systemctl status firewalld
在开启防火墙的状态下配置开放端口:
firewall-cmd --permanent --add-port=3306/tcp
重新加载使配置生效:firewall-cmd --reload
2、项目运行order by 和group by 问题
mysql不同的版本,配置文件不一样。在mysql5.7版本以上,mysql默认开启了only_full_group_by sql模式,在该模式下,我们使用groupby查询和orderby 查询会报错,报错信息如下:
报错信息
解决办法:
1、命令修改:
通过命令直接关闭only_full_group_by sql模式,通过命令关闭只是暂时生效,mysql重启之后模式还是恢复到默认值。
2、修改配置文件:
修改mysql的配置文件my.cnf,永久关闭only_full_group_by 模式。
配置命令:sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
配置如图所示:
一定要在mysqld下面添加,然后保存重启数据库就可以了。
3、忽略mysql查询语法表名大小写问题
mysql默认情况下表名是大小写敏感的,需要通过配置来实现忽略表明的大小写。
1、命令修改:
动态配置,当前是临时生效的,MySQL重启之后就会失效,除非再次设置;
命令:set global lower_case_table_names = 1;
2、配置文件修改:
修改mysql的配置文件my.cnf,在mysqld 下面添加以下命令:
lower_case_table_names = 1
然后保存重启MySQL服务就可以了。
当前值设置为0,表名大小写敏感(默认);
当前值设置为1,将表名存储为小写,并在比较表名时不区分大小写;
当前值设置为2,将表名存储为小写,并在比较表名时区分大小写(仅在非windows环境下使用)。
配置如图所示:
以上是项目运行中遇到的一些问题总结,仅当学习交流,后期持续更新!!!