当前位置: 代码网 > it编程>数据库>Mysql > mysql配置文件my.ini优化大全:日志、字符集等设置

mysql配置文件my.ini优化大全:日志、字符集等设置

2026年09月01日 Mysql 我要评论
一.启用sql日志查看是否开启sql日志show variables like "general_log%"; -- 查询是否启用日志 no是开启的状态,off是关闭的状态方式一以上设置重启mysq

一.启用sql日志

查看是否开启sql日志

show variables like "general_log%"; -- 查询是否启用日志  no是开启的状态,off是关闭的状态

方式一

以上设置重启mysql后失效

set global general_log = 'on';  -- 设置启用

set global sql_log_off = 'off';  -- 设置关闭

set global general_log_file = '/var/lib/mysql/mysql.log';  -- 指定日志文件

方式二

# /etc/my.cnf须在[mysqld] 里
# 查询日志,开启对所有执行语句进行记录
general_log=on
# 查询日志,存放位置
general_log_file=d:\mysql-5.7.33-winx64\log\query.log
# 查询日志,文件中的时间显示已系统时间为准
log_timestamps = system

二.慢日志

0.查看慢日志是否开启

-- 查询是否开启慢日志  off为关闭状态,no为开启状态
show variables like 'slow_query%';
-- 查看慢sql设置时间
show variables like '%long_query_time%';

1.开启慢日志

方式一

-- 查询是否开启慢日志  off为关闭状态,no为开启状态
show variables like 'slow_query%';

-- 通过以下命令开启慢日志:
-- 开启慢日志
set global slow_query_log='on'; 
-- 设置慢日志存放的位置
set global slow_query_log_file='d:\mysql-5.7.33-winx64\data\laptop-jd2v280h-slow.log';
-- 会记录没有使用索引的查询sql,但前提是必须开启 slow_query_log='on'
set global log-queries-not-using-indexes = 'on';
-- 设置日志超过10秒就记录慢日志
set global long_query_time=10;

方式二

# /etc/my.cnf须在[mysqld] 里
[mysqld]
slow_query_log = on
slow_query_log_file = /home/local/mysql/data/slow.log
log-queries-not-using-indexes = on
long_query_time = 10

2.慢sql参数

time                 id command    argument
# time: 2022-03-21t09:13:39.037729z
# user@host: skip-grants user[root] @ localhost [::1]  id:   520
# query_time: 13.975245  lock_time: 0.000091 rows_sent: 766373  rows_examined: 766373
use homepensioncloud;
set timestamp=1647854019;
select * from sys_user;
time: 记录日志的时间
user@host: 执行的用户及主机
query_time: 执行的时间
lock_time: 锁表时间
rows_sent: 发送给请求放的记录数,结果数量
rows_examined: 语句扫描的记录条数
set timestamp: 语句执行的时间点
select……: 执行的具体的sql语句

三.扩展

1.关闭表名大小写敏感

-- 查看是否开启表明大小写敏感
show global variables like '%lower_case%';

设置

# /etc/my.cnf须在[mysqld]节点下,加入一行: (1是先把表名转换为小写,在执行)
lower_case_table_names=1

2.设置mysql客户端默认字符集

# /etc/my.cnf 在[mysql] 节点 设置mysql客户端默认字符集
[mysql]
default-character-set=utf8

3.mysql其他设置

# /etc/my.cnf须在[mysqld]节点下
[mysqld]
#跳过密码认证
skip-grant-tables
#设置3306端口
port = 3306
server-id = 33123
# 设置mysql的安装目录
basedir=d:\mysql-5.7.33-winx64
# 设置mysql数据库的数据的存放目录
datadir=d:\mysql-5.7.33-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=innodb
# 必须加到[mysqld]下面 select @@global.sql_mode;  -- 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

四.我的my.ini配置

[mysqld]
#跳过密码认证
skip-grant-tables
#设置3306端口
port = 3306
server-id = 33123
# 设置mysql的安装目录
basedir=d:\mysql-5.7.33-winx64
# 设置mysql数据库的数据的存放目录
datadir=d:\mysql-5.7.33-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=innodb

# 必须加到[mysqld]下面 select @@global.sql_mode;  -- 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

## 开启慢sql
# 开启慢sql
slow_query_log=on
# 慢sql存的文职
slow_query_log_file=d:\mysql-5.7.33-winx64\log\log\slow.log
# 会记录没有使用索引的查询sql,但前提是必须开启 slow_query_log='on'
log-queries-not-using-indexes =on
# 超过10秒则属于慢sql,慢查询时间,这里为10秒,超过10秒会被记录
long_query_time=10

## 启用sql日志
# 查询日志,开启对所有执行语句进行记录
general_log=on
# 查询日志,存放位置
general_log_file=d:\mysql-5.7.33-winx64\log\query.log
# 查询日志,文件中的时间显示已系统时间为准
log_timestamps = system

# mysql表名大小写敏感 1是先把表名装维小写,在执行
lower_case_table_names=1

# 设置时区为东八区  show variables like '%time_zone%';
default-time-zone = '+8:00'
 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com