1.首先安装完mysql8.0.21 后,在 programdata 下发现了 my.ini 但发现改了参数文件重启都不剩生效,解决办法
1)默认安装到c盘会自动隐藏,记得打开隐藏文件找到他,如果没有的话再找找,就像我,在programdata 下找到一个,可以试试重启一下看看生效吗
2)在mysql的安装目录下新建my.ini文件,新建好直接重启即可
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\Program Files\MySQL\MySQL Server 8.0
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\MySQL\MySQL Server 8.0\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
#导出限制
secure-file-priv=""
#事件开启
event_scheduler=on
#二进制
log_bin=D:/log/binlog
binlog_expire_logs_seconds = 4860000
max_binlog_size = 100M
binlog_format=statement
#通用日志
general_log=1
general_log_file=D:\log\pc.log
#慢查询日志
slow_query_log = on
slow_query_log_file=D:\log\slow.log
long_query_time = 300
log_queries_not_using_indexes = on
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
然后 mysqld --defaults-file="C:\install\mysql\mysql-8.0.16-winx64\my.ini" 修改使用的配置文件,然后重启服务即可,可用 show variables like '%datadir%' 验证
2.报错[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
1)网上的解决方案都是修改sql_mode 但是因为我的my.ini没有这个文件,怎么改都不生效,如果您也遇到同样的问题记得先把第一步操作了,重新启动mysq
2)在添加my.ini文件的时候就把sql_mode参数添加进去
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3)该方法若mysql重启则失效
mysql中执行 show variables like '%sql_mode';
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));