前言:
mysql
数据库在日常工作开发中经常用到的存储设备, 之前已经分享了面试过程中经常被问到的mysql
优化的内容,本期就结合mysql
的配置文件进行分析。这里需要说明的是, 在windows
系统的配置文件为 my.ini
, 而在Linux
上的配置文件为my.cnf
。
在客户端的配置文件 主要包括 mysql
的服务端口,已经 mysql
连接通信文件,以及客户端连接的字符集。
[client] #客户端设置 port=3306 socket=/data/mysql/data/mysql.sock default-character-set=utf8mb4
# 服务端文件配置 [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
是 mysql
中一个重要的配置项,其定义了支持的 sql
语法和数据校验规则。
常用的配置如下所示:
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 的内存结构详情