当前位置: 首页 > news >正文

Mysql8配置文件

Mysql8配置文件

    • 修改`my.cnf`----配置持久化键(persistence key)
      • 配置表名不区分大小写

修改my.cnf----配置持久化键(persistence key)

MySQL8初始化数据库之前配置好这些变量值,初始化数据库之后可能无法修改这个值。
在这里插入图片描述

# 服务端配置
[mysqld]
######## 数据目录和基础配置
# 源码安装的mysql8需要指定mysql安装目录
# basedir=/usr/local/mysql
# 数据库文件存储目录。
datadir=/var/lib/mysql
# MySQL 进程监听的 Unix 套接字文件路径。
socket=/var/run/mysqld/mysqld.sock
# 指定运行 MySQL 进程的用户身份。
user=mysql
# 指定MySQL服务进程ID文件的路径
pid-file=/var/run/mysqld/mysqld.pid
# 指定安全文件目录,只有在该目录下的文件才可被导入/导出。
secure-file-priv=/var/lib/mysql-files

# 设置默认时区为东八区
default-time-zone='+8:00'

######### 网络与连接
# mysql服务绑定的本机哪个IP地址
bind-address=127.0.0.1
# 禁用 DNS 查询结果缓存,这对于高负载的 MySQL 服务器来说是很重要的,因为它可以减少 DNS 延迟和负载。
host_cache_size=0
# 禁用主机名解析,这也可以提高 MySQL 服务器的性能,因为当客户端连接到服务器时,会先进行主机名解析,而禁用它可以加速连接进程。
# 只能用IP地址检查客户端的登录,不用主机名
skip-name-resolve
# 最大连接数
max_connections=400
# 最大错误连接数
max_connect_errors=1000
wait_timeout = 600         # 非交互连接超时(默认8小时过长)
interactive_timeout = 60   # 交互式连接超时


######### 字符集与时区
# 服务端指定字符集
character-set-server=utf8mb4
# 服务端使用的字符序
# https://www.cnblogs.com/chyingp/p/mysql-character-set-collation.html
collation-server=utf8mb4_unicode_ci
# 指定默认时区
default-time-zone='+8:00'

# 执行SQL语句时所应该遵守的规则
## STRICT_TRANS_TABLES:当插入数据时,如果出现字段类型不匹配、值超出范围等情况,将产生严格的警告或错误。
## NO_ZERO_IN_DATE:防止在日期或日期时间字段中使用0作为数值的填充。
## NO_ZERO_DATE:防止在日期或日期时间字段中插入'0000-00-00'的空白日期格式。
## ERROR_FOR_DIVISION_BY_ZERO:禁用除数为零的操作,并将其视为错误。
## NO_ENGINE_SUBSTITUTION:如果需要连接的存储引擎不存在或不可用,则不自动替换为其他存储引擎。
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION


# ========================
# [InnoDB 性能优化]
# ========================
# 指定InnoDB缓冲池大小,单位为字节
## 关键!建议设为物理内存70%-80%(原200M过低)
innodb_buffer_pool_size=700M
innodb_flush_log_at_trx_commit = 1  # 1=严格持久化(安全),2=折中性能
innodb_log_buffer_size = 64M       # 默认16M,大事务可提升
innodb_flush_method = O_DIRECT     # 避免双缓冲
innodb_thread_concurrency = 0      # 自动调整并发线程


# ========================
# [日志配置]
# ========================
# 错误日志路径
log-error=/var/log/mysqld.log
# 指定日志输出方式,可以为FILE、TABLE等。
log-output=FILE
# 指定是否启用慢查询日志:ON开启
slow_query_log=ON
# 指定慢查询日志文件的路径
# slow_query_log_file=/var/log/query.err
# 指定慢查询的最小时间(s)
long_query_time=2
log_queries_not_using_indexes = ON      # 记录无索引查询
# 禁用常规查询日志。
general_log=0
# 指定常规查询日志文件的路径
# general_log_file=/var/log/general.err

# bin-log二进制日志(主从复制/数据恢复)
# server-id = 1
# log-bin = /var/log/mysql/mysql-bin.log
# binlog_format = ROW


# ========================
# [安全与兼容性]
# ========================
# 认证插件
# 使用旧版mysql5的密码认证插件,支持简单密码
## mysql_native_password(传统模式,兼容旧客户端)
## caching_sha2_password(MySQL 8.0+ 默认)
## sha256_password
authentication_policy=mysql_native_password
# 指定是否启用严格模式下的时间戳
# TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
## 配置 true| 1 ,false | 0
explicit_defaults_for_timestamp=true


# ========================
# [高级性能参数]
# ========================
# SQL数据包发送的大小,如果有BLOB(二进制大对象)建议修改成1G
## BLOB用来存图像、音频和视频等文件
# max_allowed_packet=1G
# 指定单个MySQL包的最大大小,单位为字节(根据BLOB需求调整)
max_allowed_packet=64M
tmp_table_size = 64M                # 临时表内存大小
max_heap_table_size = 64M           # 内存表最大值
# 连接缓冲
back_log = 512                      # 短连接高并发场景需增大
thread_cache_size = 32              # 减少线程创建开销


# ========================
# [事务隔离参数]
# ========================
# 事务隔离级别设为读已提交
## mysql默认可重复读级别repeatable read(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation=READ-COMMITTED


# 初始化连接时的字符集
## 若存在不可控客户端连接或需强化字符集统一性(如公有云数据库服务)‌
#init_connect='SET NAMES utf8mb4'

# 对其他远程连接的mysql客户端的配置
[mysql]
# 远程连接的客户端指定字符集
default-character-set=utf8mb4

# 对localhost的mysql客户端的配置
[client]
# 客户端连接 MySQL 的套接字文件路径。
socket=/var/run/mysqld/mysqld.sock
# 指定MySQL客户端使用的字符集
default-character-set=utf8mb4


# 导入其他配置文件。
# !includedir /etc/mysql/conf.d/
# !includedir /etc/mysql/mysql.conf.d/

检查mysql配置

# 检查配置文件语法
mysqld --validate-config

配置表名不区分大小写

SQL语句和列名不区分大小写,SQL的表名是默认区分大小写的。
可以修改变量来不区分表名大小写;

0:表示表名区分大小写;
1:表示表名不区分大小写,但在存储和比较时仍保留原始名称的大小写形式;
2:表示表名不区分大小写,并将所有表名转换为小写。

编辑/etc/my.cnf;
/etc/mysql/my.cnf;
my.ini;
/etc/my.cnf.d/my.cnf;
[mysqld] 段添加:

# 表名不区分大小写
lower_case_table_names=1
http://www.dtcms.com/a/129939.html

相关文章:

  • 【贪心之摆动序列】
  • 三、Virtual Device Manager
  • CST1019.基于Spring Boot+Vue智能洗车管理系统
  • 从零手写RPC-version0
  • Android游戏逆向工程全面指南
  • MySQL慢查询全攻略:定位、分析与优化实战
  • Python 深度学习 第5章 机器学习的核心问题泛化及如何提高模型的泛化能力实例
  • 【MySQL】关于何时使用start slave和start slave user=‘’ password=‘’
  • 计算机的发展及应用
  • minio重大更新!RELEASE.2025-04-08T15-41-24Z发布:修复关键Bug,存储管理更高效!
  • 基于PyQt5的Jupyter Notebook转Python工具
  • 生物化学笔记:医学免疫学原理16 自身免疫和自身免疫性疾病
  • 电感特性参数、选型方法与厂商推荐
  • Spring Boot(二十二):RedisTemplate的List类型操作
  • DWS常用操作手册
  • Windows 10和Windows 11系统截图的9种方式【简便实用】
  • Mac M1管理多个Node.js版本
  • 深入解析区块链技术:原理、应用与未来展望
  • java(二):java的运算和流程控制
  • 在Ubuntu下交叉编译 Qt 应用程序(完整步骤)
  • 竞拍商城:电商创新的博弈场与未来趋势
  • 进程基本介绍
  • C++Primer对象移动
  • C语言十大经典数学应用
  • 每天五分钟深度学习:非线性激活函数的导数
  • 2025年,HarmonyOS认证学习及考试
  • Go:函数
  • 使用 lm-eval 评估模型时报错:TypeError: ‘NoneType’ object is not callable 的解决方案
  • StableDiffusion完美扩图
  • 【计算机网络实践】(十二)大学校园网综合项目设计