mysql的my.cnf常用配置

一.启用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值