1、初始化配置方法

  1. 配置文件 : 主要方法
  2. 命令行参数 : 特殊场景
  3. 源码编译安装: 很少使用
  4. #优先级:
  5. 命令行 > 配置文件 > 编码编译
  6. #例如:
  7. 命令行 : port=3308 优先级: 1
  8. 配置文件: port=3307 优先级: 2
  9. 编译安装: port=3306 优先级: 3

2、配置文件的应用

2.1、配置文件在那个位置

mysqld  --help  --verbose |  grep  my.cnf
/etc/my.cnf 
/etc/mysql/my.cnf 
/usr/local/mysql/etc/my.cnf
~/.my.cnf

#思考: 4个文件都设置了 port = 参数, 而且都不一样, 以哪个配置为准?
#优先级: 从上至下, 由最后一个为准

#手工指定配置文件位置
mysqld_safe  --defaults-file=/opt/my.cnf  &

2.2、编写systemd启动脚本

#核心配置,指定mysql默认配置在/opt/my.cnf, 其它为默认写法
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/opt/my.cnf

cat > /etc/systemd/system/mysql.service  <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/app/mysql8024/bin/mysqld --defaults-file=/opt/my.cnf
LimitNOFILE = 5000
EOF

#停止mysql
/etc/init.d/mysqld stop

#启动mysql
systemctl start mysql.service

#此时生效的是/opt/my.cnf下的配置文件

3、配置文件书写格式

标签项
服务端
[server]  # 所有服务端的程序
[mysqld]  # mysqld 程序运行时读取的配置
[mysqld_safe]  # mysqld_safe程序运行时读取的配置

客户端
[clinet]  # 所有 "本地" 客户端的程序
[mysql]  # mysql命令在本地执行时读取的配置
[mysqldump]  # mysqldump命令在本地执行时读取的配置
[mysqladmin] 

配置项
服务端
[mysqld]  # 服务端标签
basedir = /usr/local/mysql  # 软件目录
datadir = /usr/local/mysql/data  # 数据目录

客户端
[client]  # 客户端标签
socket=/usr/local/mysql/mysql.sock  # mysql 连接数据库自动读取的socket文件位置