Mysql 文件配置解析

 更新时间:2022年05月06日 14:33:11   作者:​ 斜月   ​  
这篇文章主要介绍了Mysql 文件配置解析,文章通过mysql的主要配置文件作用展开innodb引擎是mysql数据库中的重要部分的详细说明,感兴趣的小伙伴可以参考一下

前言:

mysql数据库在日常工作开发中经常用到的存储设备, 之前已经分享了面试过程中经常被问到的mysql优化的内容,本期就结合mysql的配置文件进行分析。这里需要说明的是, 在windows系统的配置文件为 my.ini, 而在Linux上的配置文件为my.cnf

client 端配置

在客户端的配置文件 主要包括 mysql 的服务端口,已经 mysql 连接通信文件,以及客户端连接的字符集。

[client]
#客户端设置
port=3306
socket=/data/mysql/data/mysql.sock
default-character-set=utf8mb4

mysqld 端配置

# 服务端文件配置
[mysqld]
# mysql 服务启动时的用户
user=mysql
# 服务启动的默认端口
port=3306
#mysql的客户端和服务端之间建立通信时需要指定一个通信stock文件
socket= /data/mysql/data/mysql.sock
#mysql服务的ID,在主从同步时来标记服务的唯一身份
server-id=1
# 端口的ip绑定,这里和redis的端口绑定类似,如果是0.0.0.0标识允许所有的远程访问,127.0.0.1表示只能是本地访问,如果固定ip则只能接受改ip的远程访问。
bind-address = 0.0.0.0
# linux 中一切皆文件,mysql服务启动后会记录进程id到改文件中,用于记录服务的运行情况
pid-file=/data/mysql/data/mysql.pid
#mysql服务的安装目录
basedir=/usr/local/mysql
#mysql服务的数据数据存放目录
datadir=/data/mysql/data/
#数据库系统磨人的字符集合排序方式,这里说一下ci和cs的区别,就是大小写敏感和不敏感 ci 就是 case ignore cs 就是 case senstive
character_set_server=utf8mb4
collation_server=utf8mb4_general_ci

其他设置

#表名称和表字段是否区分大小写1 表示区分大小写,0表示区分大小写
lower_case_table_name=1
# 创建新表时使用的默认数据库引擎
default-storage-engine=INNODB

sql_mode

sql_mode 是 mysql 中一个重要的配置项,其定义了支持的 sql 语法和数据校验规则。

  • sql 模式设置: ANSI 是宽松模式,对数据插入进行校验,如果不符合数据定义和长度,对数据类型调整或者截断保存,给出 warning 警告。STRICT_TRANS_TABLES 严格模式,严格校验保证错误格式的数据不能插入,报 error 错误,只对事务操作起作用,非事务操作不起作用。TRADITIONAL 严格模式,在插入数据时进行严格校验,保证错误数据不能插入并报 error 错误。作用于事务时会回滚事务。
  • 是否接受日期格式为 0。NO_ZERO_DATE 是否允许 '0000-00-00' 日期被插入。如果不启用,则 '0000-00-00' 允许插入没有 waring 提示信息。如果启用配置则 '0000-00-00' 允许插入有提示信息。如果是严格模式且启用配置,则'0000-00-00' 不允许插入并产生 error 错误。但是 insert ingore 或者 update ignore 的 sql 除外。NO_ZERO_IN_DATE 和 NO_ZERO_DATE 是类似的,只不过接受的日期为 '2010-00-01' 或者 '2010-01-00', 而不是 '0000-00-00'。
  • ONLY_FULL_GROUP_BY 该模式下对于 group by 聚合操作,在 select 中的列,如果没有在 group by 中出现,将会认为这个 sql 不合法。
  • NO_AUTO_CREATE_USER 禁止创建密码为空的用户。
  • NO_ENGINE_SUBSTITUTION 当存储引擎禁用或者未解析时,使用存储引擎就会报错。
  • NO_AUTO_VALUE_ON_ZERO 自增数据列设置,默认情况下,插入 0 或者 null 则代表下一个自增值,如果用户希望插入数据为 0 但是该列为自增,此时需要设置改配置。
  • Mysql InnoDB 的内存结构 在 insert 或者 update 数据时,如果数据除零,则产生错误而非警告。

常用的配置如下所示:

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

总结

本文讲述了 mysql 的主要配置文件的作用,innodb 引擎是 mysql 数据库中的重要部分,关于这一块儿的知识,前文已经分享过了,不再赘述,感兴趣的可以移步这里 Mysql InnoDB 的内存结构详情

到此这篇关于Mysql 文件配置解析的文章就介绍到这了,更多相关Mysql 文件配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • LNMP下使用命令行导出导入MySQL数据库的方法

    LNMP下使用命令行导出导入MySQL数据库的方法

    这篇文章主要介绍了LNMP下使用命令行导出导入MySQL数据库的方法,需要的朋友可以参考下
    2016-09-09
  • 图文详解MySQL中的主键与事务

    图文详解MySQL中的主键与事务

    这篇文章主要给大家介绍了关于MySQL中主键与事务的相关资料,主键与事务是我们使用mysql中经常遇到的,文中通过图文以及实例代码介绍的很详细,需要的朋友可以参考下
    2021-05-05
  • Mysql更换MyISAM存储引擎为Innodb的操作记录总结

    Mysql更换MyISAM存储引擎为Innodb的操作记录总结

    下面小编就为大家带来一篇Mysql更换MyISAM存储引擎为Innodb的操作记录总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • MySQL命令行方式进行数据备份与恢复

    MySQL命令行方式进行数据备份与恢复

    本文主要介绍了MySQL命令行方式进行数据备份与恢复,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • MySQL内部临时表的具体使用

    MySQL内部临时表的具体使用

    MySQL临时表在很多场景中都会用到,比如用户自己创建的临时表用于保存临时数据,以及MySQL内部在执行复杂SQL时,需要借助临时表进行分组、排序、去重等操作,本文就来详细的介绍一下MySQL内部临时表
    2021-10-10
  • MySQL不支持INTERSECT和MINUS及其替代方法

    MySQL不支持INTERSECT和MINUS及其替代方法

    这篇文章主要介绍了MySQL不支持INTERSECT和MINUS情况下的替代方法,需要的朋友可以参考下
    2014-03-03
  • MySQL 数据库跨操作系统的最快迁移方法

    MySQL 数据库跨操作系统的最快迁移方法

    原始的是Windows 2003下的32位的MySQL数据库, 新的服务器是Sun的64位的小型机,64位的MySQL数据库。
    2009-02-02
  • MySQL设置表自增步长的方法

    MySQL设置表自增步长的方法

    自增字段是一种常见且重要的功能,通常用于生成唯一的标识符,本文主要介绍了MySQL设置表自增步长的方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • MySQL 创建三张关系表实操

    MySQL 创建三张关系表实操

    这篇文章主要介绍了MySQL 创建三张关系表实操,文章说先创建学生表然后科目表和分数表三张有着密切关系的表,下文实操分享需要的小伙伴可以参考一下
    2022-03-03
  • mysql中根据已有的表来创建新表的三种方式(最新推荐)

    mysql中根据已有的表来创建新表的三种方式(最新推荐)

    这篇文章主要介绍了mysql中根据已有的表来创建新表的三种方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07

最新评论