文章目录
- 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,不接受其他来源;如要远程连接数据库,注释掉这个,重启数据库。