mysql的配置管理_MySQL 启动流程及配置管理

MySQL 启动关闭流程

启动数据库

596a1ab3e498f8e5792370700e80d570.png

# 启动数据库时,具体流程

1. systemctl start mysql

2. /etc/init.d/mysqld start

3. mysqld_safe --defaults-file=/etc/my.cnf

4. mysqld --defaults-file=/etc/my.cnf

# 最终都是 mysqld_safe 启动,mysqld 守护进程在后台

关闭数据库

# 正常关闭数据

1.systemctl stop mysql

2./etc/init.d/mysqld stop

3.mysqldadmin -uroot -p123 shutdown

# 不正常关闭数据库

1.kill -9 mysqlpid

2.killall mysqld

3.pkill mysqld

# 后果:

1.如果业务量很大,数据库不会立刻关闭,只是停止服务,pid文件和socket文件还存在

2.如果业务量很大,会丢失数据

MySQL 配置管理

预编译阶段

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.20 \

-DMYSQL_DATADIR=/usr/local/mysql-5.6.20/data \

-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.20/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_ZLIB=bundled \

-DWITH_SSL=system \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH_DEBUG=0

配置文件

# 配置文件位置(按读取顺序正序排列,优先级倒序排列)

①. /etc/my.cnf # 优先级 4

②. /etc/mysql/my.cnf # 优先级 3

③. $basedir/my.cnf # 优先级 2

④. ~/my.cnf # 优先级 1

# defaults-extra-file 配置在上述的配置文件中,记录其他子配置文件路径,优先级由上述的配置文件决定 (类似 include)

vim /etc/my.cnf

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

命令行

mysqld_safe

--skip-grant-tables

--skip-networking

--datadir=/usr/local/mysql/data

--basedir=/usr/local/mysql/mysql

--defaults-file=/etc/my,cnf

--pid-file=/usr/local/mysql/data/db01.pid

--socket=/usr/local/mysql/data/mysql.sock

--user=mysql

--port=3306

--log-error=/usr/local/mysql/data/db01.err

MySQL 配置文件

配置文件的位置和优先级

①. /etc/my.cnf # 优先级 4

②. /etc/mysql/my.cnf # 优先级 3

③. $basedir/my.cnf # 优先级 2

④. ~/my.cnf # 优先级 1

# defaults-extra-file 配置在上述的配置文件中,记录其他子配置文件路径,优先级由上述的配置文件决定 (类似 include)

配置文件的优先级测试

# 配置~/.my.cnf

[root@db03 ~]# vim ~/.my.cnf

[mysqld]

server_id=1

# 配置$basedir/my.cnf

[root@db03 ~]# vim /service/mysql/my.cnf

[mysqld]

server_id=2

# 配置/etc/mysql/my.cnf

[root@db03 ~]# vim /etc/mysql/my.cnf

[mysqld]

server_id=3

# 配置/etc/my.cnf

[root@db03 ~]# vim /etc/my.cnf

server_id=4

# 重启数据库

[root@db03 ~]# /etc/init.d/mysqld start

# 查看 server_id 测试

[root@db03 ~]# mysql -uroot -p123 -e 'show variables like "server_id"'

Warning: Using a password on the command line interface can be insecure.

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| server_id | 4 |

+---------------+-------+

配置文件的生效顺序

# 1.预编译制定socket文件

cmake . -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.46/tmp/mysql.sock

# 2.配置文件制定

[root@db02 ~]# vim /etc/my.cnf

[mysqld]

socket=/tmp/mysql.sock

# 3.配置a.txt

[root@db02 ~]# vim a.txt

[mysqld]

socket=/opt/mysql.sock

# 4.命令行

--socket=/tmp/commond.sock

# 5.分别使用以下命令测试生效的配置

[root@db02 ~]# mysqld_safe --defaults-file=a.txt --socket=/tmp/commond.sock &

[root@db02 ~]# mysqld_safe --defaults-file=a.txt

[root@db02 ~]# mysqld_safe

# 6.查看socket文件位置判断优先级

配置文件的优先级总结

# 优先级从高到低

--socket=/tmp/mysql.sock > --defaults-file=/xxx/my.cnf > ~/my.cnf > $basedir/my.cnf > /etc/mysql/my.cnf > /etc/my.cnf > 初始化 > 预编译

MySQL 配置文件的作用

影响客户端的连接

[root@db02 ~]# vim /etc/my.cnf

[mysqld]

socket=/tmp/mysql.sock

[mysql]

socket=/tmp/mysql.sock

user=root

password=123

# 不需要重启,直接 mysql 就可以连接数据库

影响服务端启动

[root@db02 ~]# vim /etc/my.cnf

[mysqld]

socket=/tmp/mysql.sock

server_id=1

# 配置 server_id,必须要重启,查看才生效

总结

1.客户端也受配置文件影响[mysql] [client]

2.客户端配置以后可以不重启

3.服务端配置以后必须重启[mysqld] [server]

4.企业一般配置

[root@db02 ~]# vim /etc/my.cnf

[mysqld]

socket=/tmp/mysql.sock

server_id=1

[mysql]

socket=/tmp/mysql.sock

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值