MySQL mysqld mysqld_safe mysql.server mysqld_multi 四种启动方式区别

一、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

a、初始化MySQL

/data/opt/mysql-8.0.19_3306/bin/mysqld --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf --initialize

b、启动MySQL

/data/opt/mysql-8.0.19_3306/bin/mysqld --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf

c、连接MySQL

/data/opt/mysql-8.0.19_3306/bin/mysql --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf -u root -p

二、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

a、初始化MySQL

/data/opt/mysql-8.0.19_3306/bin/mysqld --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf --initialize

b、启动MySQL

/data/opt/mysql-8.0.19_3306/bin/mysqld_safe --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf

c、连接MySQL

/data/opt/mysql-8.0.19_3306/bin/mysql --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf -u root -p

三、mysql.server

mysql.server:启动之前需要mysql.server文件复制到/etc/init.d目录下才可以使用。

a、初始化MySQL

/data/opt/mysql-8.0.19_3306/bin/mysqld --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf --initialize

b、启动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}

c、连接MySQL

/data/opt/mysql-8.0.19_3306/bin/mysql --defaults-file=/data/opt/mysql-8.0.19_3306/my.cnf -u root -p

四、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
发布了212 篇原创文章 · 获赞 151 · 访问量 50万+

猜你喜欢

转载自blog.csdn.net/yhj19920417/article/details/44181111