重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
my.cnf 是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载。
创新互联建站-专业网站定制、快速模板网站建设、高性价比福海网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式福海网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖福海地区。费用合理售后完善,10年实体公司更值得信赖。
安装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后即可生效。
1.第一种方法:在DOS命令行窗口登录MySQL,输入如下命令查看MySQL的安装目录和数据存放目录,MySQL的配置文件就在数据存放目录下:
2.另外一种方法:在“开始 → 所有程序 → MySQL”下面找到MySQL的命令行客户端工具,右键选择该命令行工具查看“属性”,在“目标”里面也可以看到MySQL使用的配置文件位置。
注意:ProgramData目录可能是“隐藏”的,如果在显示的分区中看不到的话就修改一下系统设置,让隐藏文件/文件夹可见。或者直接将ProgramData/MySQL/MySQL Server 5.6目录复制下来直接粘贴到文件夹的目录窗口中也可以。
查找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客户端(