mysqld mysqld_safe mysql.server mysqld_multi 四种启动方式区别
- 1-mysqld
- 1.1-初始化 MySQL
- 1.2-启动 MySQL
- 1.3-连接 MySQL
- 2-mysqld_safe
- 2.1-初始化 MySQL
- 2.2-启动 MySQL
- 2.3-连接 MySQL
- 3-mysql.server
- 3.1-初始化 MySQL
- 3.2-启动 MySQL
- 3.3-连接 MySQL
- 4-mysqld_multi
1-mysqld
mysqld
:是MySQL
的核心程序,用于管理MySQL
数据库文件以及用户的请求操作。mysqld
可以读取配置文件(my.cnf
)中的[mysqld]
的部分
#服务端设置
[mysqld]
#服务id:可高可用时区分
server_id = 001
#监听端口
port = 3306
#启动用户
user = mysql
#数据库默认编码(5.1以下 default-character-set)
character_set_server = utf8mb4
# 数据库默认比对规则、排序规则
collation_server = utf8mb4_bin
# 该目录为根目录(安装目录)
basedir = /data/opt/mysql-8.0.19_3306
# 数据库初始化数据存放目录(创建文件夹且文件夹中无文件)
datadir = /data/data/mysql/8.0.19_3306/data
# 数据库存放临时文件的目录(创建文件夹)
tmpdir = /data/data/mysql/8.0.19_3306/tmp
# 指定客户端程序与数据库间通讯的套接字文件
socket = /data/data/mysql/8.0.19_3306/mysql.sock
explicit_defaults_for_timestamp = true
1.1-初始化 MySQL
/data/opt/mysql-8.0.19_3306/bin/mysqld --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf --initialize
1.2-启动 MySQL
/data/opt/mysql-8.0.19_3306/bin/mysqld --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf
1.3-连接 MySQL
/data/opt/mysql-8.0.19_3306/bin/mysql --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf -u root -p
2-mysqld_safe
mysqld_safe
:相当于多了一个守护进程,mysqld
挂了会自动把mysqld
进程拉起来。
mysqld_safe
读取的配置部分[mysqld]
、[server]
、[myslqd_safe]
,为了兼容mysql_safe
也会读取[safe_mysqld]
中的配置。- 调用的
mysqld
是可以在[mysqld_safe]
中用-mysqld
、--mysqld-version
指定。
[mysqld_safe]
# 数据库错误日志(创建文件夹)
log-error = /data/data/mysql/8.0.19_3306/log/mysqld.log
# 数据库启动后进程文件位置
pid-file = /data/data/mysql/8.0.19_3306/3306.pid
2.1-初始化 MySQL
/data/opt/mysql-8.0.19_3306/bin/mysqld --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf --initialize
2.2-启动 MySQL
/data/opt/mysql-8.0.19_3306/bin/mysqld_safe --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf
2.3-连接 MySQL
/data/opt/mysql-8.0.19_3306/bin/mysql --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf -u root -p
3-mysql.server
mysql.server
:启动之前需要mysql.server
文件复制到/etc/init.d
目录下才可以使用。
3.1-初始化 MySQL
/data/opt/mysql-8.0.19_3306/bin/mysqld --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf --initialize
3.2-启动 MySQL
cp /data/opt/mysql-8.0.19_3306/bin/support-files/mysql.server /etc/init.d/mysql
# 开机自启
chkconfig --add mysql
# 启动 MySQL等命令
service mysql {start|stop|restart|reload|force-reload|status}
3.3-连接 MySQL
/data/opt/mysql-8.0.19_3306/bin/mysql --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf -u root -p
4-mysqld_multi
mysqld_multi
:是用于管理多实例启动的一个脚本。
mysqld_multi
读取配置文件中的[mysqld_multi]
、[mysqldN]
,N
是一个整数,建议用端口号表示。该部分配置会覆盖[mysqld]
部分中的配置。
MySQL 单机多实例部署 多配置文件 mysqld_multi 两种方案
multi.cnf
:
# 客户端设置:客户端的连接参数
[client]
# 连接 MySQL 使用的端口
port = 3308
# 连接 MySQL 使用的套接字文件
socket = /data/data/mysql/multi/mysql.sock
# 设置字符集
default-character-set = utf8mb4
# 服务端设置
[mysqld]
# 数据库默认编码(5.1以下 default-character-set)
character_set_server = utf8mb4
# 数据库默认比对规则、排序规则
collation_server = utf8mb4_bin
# 该目录为根目录(安装目录)
basedir = /data/opt/mysql-8.0.19
[mysqld_multi]
# mysqld命令位置,用于启动MySQL实例,也可以为mysqld_safe命令位置
mysqld = /data/opt/mysql-8.0.19/bin/mysqld_safe
# 用于停止MySQL实例
mysqladmin = /data/opt/mysql-8.0.19/bin/mysqladmin
# 调用mysqladmin时的账号
user = mysql
# 调用mysqladmin时的密码
password = password
# 日志
log = /data/data/mysql/multi/log/mysql_multi.log
# 3308数据库
[mysqld3308]
# 监听端口
port = 3308
# 服务id:可高可用时区分
server_id = 3308
# 数据库默认编码(5.1以下 default-character-set)
character_set_server = utf8mb4
# 数据库默认比对规则、排序规则
collation_server = utf8mb4_bin
# 该目录为根目录(安装目录)
basedir = /data/opt/mysql-8.0.19
# 数据库初始化数据存放目录(创建文件夹且文件夹中无文件)
datadir = /data/data/mysql/multi/8.0.19_3308/data
# 指定客户端程序与数据库间通讯的套接字文件
socket = /data/data/mysql/multi/8.0.19_3308/mysql3308.sock
# 数据库存放临时文件的目录(创建文件夹且文件夹中无文件)
tmpdir = /data/data/mysql/multi/8.0.19_3308/tmp
pid-file = /data/data/mysql/multi/8.0.19_3308/mysql3308.pid
explicit_defaults_for_timestamp = true
log-output = file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/data/mysql/multi/8.0.19_3308/log/slow.log
log-error = /data/data/mysql/multi/8.0.19_3308/log/error.log
binlog_format = mixed
log-bin = /data/data/mysql/multi/8.0.19_3308/log/mysql3308_bin
# 3309数据库
[mysqld3309]
# 监听端口
port = 3309
# 服务id:可高可用时区分
server_id = 3309
# 数据库默认编码(5.1以下 default-character-set)
character_set_server = utf8mb4
# 数据库默认比对规则、排序规则
collation_server = utf8mb4_bin
# 该目录为根目录(安装目录)
basedir = /data/opt/mysql-8.0.19
# 数据库初始化数据存放目录(创建文件夹且文件夹中无文件)
datadir = /data/data/mysql/multi/8.0.19_3309/data
# 指定客户端程序与数据库间通讯的套接字文件
socket = /data/data/mysql/multi/8.0.19_3309/mysql3309.sock
# 数据库存放临时文件的目录(创建文件夹且文件夹中无文件)
tmpdir = /data/data/mysql/multi/8.0.19_3309/tmp
pid-file = /data/data/mysql/multi/8.0.19_3309/mysql3309.pid
explicit_defaults_for_timestamp = true
log-output = file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/data/mysql/multi/8.0.19_3309/log/slow.log
log-error = /data/data/mysql/multi/8.0.19_3309/log/error.log
binlog_format = mixed
log-bin = /data/data/mysql/multi/8.0.19_3309/log/mysql3309_bin
# 3310数据库
[mysqld3310]
# 监听端口
port = 3310
# 服务id:可高可用时区分
server_id = 3310
# 数据库默认编码(5.1以下 default-character-set)
character_set_server = utf8mb4
# 数据库默认比对规则、排序规则
collation_server = utf8mb4_bin
# 该目录为根目录(安装目录)
basedir = /data/opt/mysql-8.0.19
# 数据库初始化数据存放目录(创建文件夹且文件夹中无文件)
datadir = /data/data/mysql/multi/8.0.19_3310/data
# 指定客户端程序与数据库间通讯的套接字文件
socket = /data/data/mysql/multi/8.0.19_3310/mysql3310.sock
# 数据库存放临时文件的目录(创建文件夹且文件夹中无文件)
tmpdir = /data/data/mysql/multi/8.0.19_3310/tmp
pid-file = /data/data/mysql/multi/8.0.19_3310/mysql3310.pid
explicit_defaults_for_timestamp = true
log-output = file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/data/mysql/multi/8.0.19_3310/log/slow.log
log-error = /data/data/mysql/multi/8.0.19_3310/log/error.log
binlog_format = mixed
log-bin = /data/data/mysql/multi/8.0.19_3310/log/mysql3310_bin