默认的mysql配置在 /etc/my.cnf ,这个配置默认用yum安装的存放路径。
成都创新互联是一家专业提供原阳企业网站建设,专注与成都网站制作、成都做网站、H5场景定制、小程序制作等业务。10年已为原阳众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
如果你是自行用二进制安装的mysql,可以自行存放路径,但是建议是放在/etc 下面,有时候也可以新建个文件夹用于存放mysql的配置文件,比如/etc/mysql/mysql.cnf。
当然如果自定义存放路径,请记得把配置文件里面的参数修改到对应的路径,比如 socket路径等。
方法/步骤
首先,我们需要找到mysql的安装目录。点击进入。
进入后,我们可以发现如图的文件。
我们找到名为my.ini的文件。
这个文件就是mysql的配置文件。点击进入。
我们可以发现,有些行的前面加有‘#’,而有些没有。
加‘#’的行标识mysql没有启用该行的服务。没有加的标识该服务已经启用。
my.cnf 是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载。
安装mysql后,系统中会有多个 my.cnf 文件,有些是用于测试的。
安装locate
命令
输出
当我们需要修改配置文件时,需要找到mysql启动时是加载了哪个 my.cnf 文件。
启动mysql后,我们查看mysql的进程,看看是否有设置使用指定目录的 my.cnf 文件,如果有则表示mysql启动时是加载了这个配置文件。
命令
输出
可以看到 /usr/local/Cellar/mysql/5.6.24/my.cnf 就是mysql启动加载的配置文件。
如果上面的命令没有输出,表示没有设置使用指定目录的 my.cnf 。
如果没有设置使用指定目录的 my.cnf ,mysql启动时会读取安装目录根目录及默认目录下的 my.cnf 文件。
查看mysql启动时读取配置文件的默认目录
命令
输出
这些就是mysql默认会搜寻 my.cnf 的目录,顺序排前的优先。
如果没有设置使用指定目录 my.cnf 文件及默认读取目录没有 my.cnf 文件,表示mysql启动时并没有加载配置文件,而是使用默认配置。
需要修改配置,可以在mysql默认读取的目录中,创建一个 my.cnf 文件(例如: /etc/my.cnf ),把需要修改的配置内容写入,重启mysql后即可生效。
查找my.cnf文件路径;
从上可以看出, 服务器首先会读取/etc/my.cnf文件,如果发现该文件不存在,再依次尝试从后面的几个路径进行读取。
参数详解:
[client] #客户端设置,即客户端默认的连接参数
port = 3307 #默认连接端口
socket = /data/mysqldata/3307/mysql.sock #用于本地连接的socket套接字
default-character-set = utf8mb4 #编码
[mysqld] #服务端基本设置
port = 3307 MySQL监听端口
socket = /data/mysqldata/3307/mysql.sock #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
pid-file = /data/mysqldata/3307/mysql.pid#pid文件所在目录
basedir = /usr/local/mysql-5.7.11#使用该目录作为根目录(安装目录)
datadir = /data/mysqldata/3307/data #数据文件存放的目录
tmpdir = /data/mysqldata/3307/tmp #MySQL存放临时文件的目录
character_set_server = utf8mb4 #服务端默认编码(数据库级别)
collation_server = utf8mb4_bin #服务端默认的比对规则,排序规则
user = mysql #MySQL启动用户
log_bin_trust_function_creators = 1 #This variable applies when binary logging is enabled. It controls whether stored function creators can be trusted not to create stored functions that will cause #unsafe events to be written to the binary log. If set to 0 (the default), users are not permitted to create or alter stored functions unless they have the SUPER #privilege in addition to the CREATE ROUTINE or ALTER ROUTINE privilege. 开启了binlog后,必须设置这个值为1.主要是考虑binlog安全
performance_schema = 0 #性能优化的引擎,默认关闭
secure_auth = 1 #secure_auth 为了防止低版本的MySQL客户端(