文章目录

  • Windows
  • Linux
  • 使用命令 locate 查找含有关键词 my.cnf 的文件路径
  • 查看是否使用了指定目录下的 my.cnf 文件
  • 查看 MySQL 默认读取 my.cnf 文件路径
  • 启动时没有读取任何配置文件
  • 主要的配置参数


类似于 Oracle 的参数文件,MySQL 的选项文件(即配置文件)用于配置 MySQL 服务器,但是文件内的配置项的叫法和 Oracle 不一样,Oracle 叫参数,而在 MySQL 官方叫变量(variables),但其实叫参数也是可以的,只要明白这俩是同一个东西就可以了。

Windows

MySQL 配置文件在 Windows 下叫 my.ini,在 MySQL 的安装根目录下

Linux

在 Linux 系统下叫 my.cnf

CentOS Linux 下该文件路径是 /etc/my.cnf

Debian Linux 下该文件路径是 /etc/mysql/my.cnf,而不是 /etc/my.cnf

使用命令 locate 查找含有关键词 my.cnf 的文件路径

[root@htlwk0001host etc]# locate my.cnf;
/etc/my.cnf
/etc/my.cnf.d
/etc/my.cnf.d/client.cnf.rpmsave
/etc/my.cnf.d/mysql-server.cnf.rpmsave

查看是否使用了指定目录下的 my.cnf 文件

启动 MySQL 后,我们查看下 MySQL 的进程,看看是否有设置使用指定目录下的 my.cnf 文件,若有则表示 MySQL 启动时是加载了这个配置文件。

[root@htlwk0001host etc]# ps aux | grep mysql | grep 'my.cnf'

若使用 ps aux | grep mysql | grep 'my.cnf' 命令之后没有任何输出,则表示没有设置使用指定目录下的 my.cnf 文件。

查看 MySQL 默认读取 my.cnf 文件路径

如果没有设置使用指定目录下的 my.cnf 文件,那么 MySQL 启动时便会读取默认的 my.cnf 文件。

使用 mysql --help | grep 'my.cnf' 命令即可查看 MySQL 启动时默认读取的配置文件的路径:

[root@htlwk0001host etc]# mysql --help | grep 'my.cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

从上面的输出结果可以清楚地看到,/etc/my.cnf、/etc/mysql/my.cnf、/usr/etc/my.cnf 以及 ~/.my.cnf 这些文件就是MySQL启动时默认会依次读取的配置文件,排在前面的优先级更高。

启动时没有读取任何配置文件

若没有设置使用指定目录下的 my.cnf文件,也没有默认的配置文件 my.cnf,则表示 MySQL 启动时并没有加载配置文件,而是使用默认配置。

如果我们想要修改配置,那么该怎么办呢?可以在 MySQL 默认读取的目录中创建一个 my.cnf 文件(例如 /etc/my.cnf),然后把需要修改的配置内容写入,重启 MySQL 后即可生效。

配置文件内容大致如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

lower_case_table_names=1

character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

#skip-grant-tables

[client]
default-character-set=utf8mb4
#default-character-set=gbk
[mysql]
default-character-set=utf8mb4
#default-character-set=gbk
[mysqld]
#default-character-set=gbk

主要的配置参数

bind-address = 127.0.0.1

如上配置,说明 mysql 默认绑定了本地 ip,不接受其他来源;如要远程连接数据库,注释掉这个,重启数据库。