单文件mysql-Multi-Instance

本文详细介绍MySQL多实例的初始化、启动及配置过程,包括不同端口实例的参数设置、日志管理、GTID与Group Replication配置。适用于需要在同一服务器上运行多个独立MySQL实例的场景。

初始化多实例:
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/datadir/3306/data
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/datadir/3307/data
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/datadir/3308/data

启动多实例:
mysqld_multi start 3306
mysqld_multi start 3307
mysqld_multi start 3308

创建实例密码:
mysqladmin -uroot -p password cyh123@ -S /data/mysql/datadir/3306/data/mysql.sock
mysql -uroot -p -S /data/mysql/datadir/3306/data/mysql.sock

以下为多实例选项文件
其中注意: 【client】中的socket要跟【mysqld3306】中的socket要一样。否则【mysqld3306】是无法开启的
除非:不启用3306这个端口的实例!

[client]
port=3306
socket=/data/mysql/datadir/3306/data/mysql.sock

[mysqld_multi]
mysqld = /data/mysql/installdir/bin/mysqld_safe
mysqladmin = /data/mysql/installdir/bin/mysqladmin
user = root
password = cyh123@
log = /data/mysqld_multi.log

[mysqld3306]
port=3306
user=mysql
socket=/data/mysql/datadir/3306/data/mysql.sock
pid-file=/data/mysql/datadir/3306/data/mysql.pid
basedir=/data/mysql/installdir
datadir=/data/mysql/datadir/3306/data
explicit_defaults_for_timestamp = true
tmpdir=/data/mysql/tmpdir
log_error=/data/mysql/logdir/3306/error_log/mysql3.err
server-id = 1
log_bin = /data/mysql/logdir/3306/bin_log/binlog
general_log_file=/data/mysql/logdir/3306/general_log/general.log
general_log = 1
slow_query_log = ON
long_query_time = 2
slow_query_log_file = /data/mysql/logdir/3306/query_log/query.log
log_queries_not_using_indexes = ON
binlog-ignore-db=mysql
binlog_cache_size=512M
expire_logs_days=0
#gtid
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
binlog_checksum = NONE
log_slave_updates = ON
binlog_format = ROW
#group replication
transaction_write_set_extraction = XXHASH64
loose-group_replication_group_name = ‘aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1’
loose-group_replication_start_on_boot = off
loose-group_replication_local_address = ‘10.6.248.199:33061’
loose-group_replication_group_seeds = ‘10.6.248.199:33061,10.6.248.199:33062,10.6.248.199:33063’
loose-group_replication_bootstrap_group = off
loose-group_replication_single_primary_mode = FALSE
loose-group_replication_enforce_update_everywhere_checks = on
auto_increment_increment=10
auto_increment_offset=1

[mysqld3307]
port=3307
user=mysql
socket=/data/mysql/datadir/3307/data/mysql.sock
pid-file=/data/mysql/datadir/3307/data/mysql.pid
basedir=/data/mysql/installdir
datadir=/data/mysql/datadir/3307/data
explicit_defaults_for_timestamp = true
tmpdir=/data/mysql/tmpdir07
log_error=/data/mysql/logdir/3307/error_log/mysql3.err
server-id = 2
log_bin = /data/mysql/logdir/3307/bin_log/binlog
general_log_file=/data/mysql/logdir/3307/general_log/general.log
general_log = 1
slow_query_log = ON
long_query_time = 2
slow_query_log_file = /data/mysql/logdir/3307/query_log/query.log
log_queries_not_using_indexes = ON
binlog-ignore-db=mysql
binlog_cache_size=512M
expire_logs_days=0
#gtid
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
binlog_checksum = NONE
log_slave_updates = ON
binlog_format = ROW
#group replication
transaction_write_set_extraction = XXHASH64
loose-group_replication_group_name = ‘aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1’
loose-group_replication_start_on_boot = off
loose-group_replication_local_address = ‘10.6.248.199:33062’
loose-group_replication_group_seeds = ‘10.6.248.199:33061,10.6.248.199:33062,10.6.248.199:33063’
loose-group_replication_bootstrap_group = off
loose-group_replication_single_primary_mode = FALSE
loose-group_replication_enforce_update_everywhere_checks = on
auto_increment_increment=10
auto_increment_offset=2

[mysqld3308]
port=3308
user=mysql
explicit_defaults_for_timestamp=true
socket=/data/mysql/datadir/3308/data/mysql.sock
pid-file=/data/mysql/datadir/3308/data/mysql.pid
basedir=/data/mysql/installdir
datadir=/data/mysql/datadir/3308/data
tmpdir=/data/mysql/tmpdir08
log_error=/data/mysql/logdir/3308/error_log/mysql3.err
server-id = 3
log_bin = /data/mysql/logdir/3308/bin_log/binlog
general_log_file=/data/mysql/logdir/3308/general_log/general.log
general_log = 1
slow_query_log = ON
long_query_time = 2
slow_query_log_file = /data/mysql/logdir/3308/query_log/query.log
log_queries_not_using_indexes = ON
binlog-ignore-db=mysql
binlog_cache_size=512M
expire_logs_days=0
#gtid
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
binlog_checksum = NONE
log_slave_updates = ON
binlog_format = ROW
#group replication
transaction_write_set_extraction = XXHASH64
loose-group_replication_group_name = ‘aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1’
loose-group_replication_start_on_boot = off
loose-group_replication_local_address = ‘10.6.248.199:33063’
loose-group_replication_group_seeds = ‘10.6.248.199:33061,10.6.248.199:33062,10.6.248.199:33063’
loose-group_replication_bootstrap_group = off
loose-group_replication_single_primary_mode = FALSE
loose-group_replication_enforce_update_everywhere_checks = on
auto_increment_increment=10
auto_increment_offset=3

多实例的命令:
mysqld_multi start/stop/restart [port]
mysqld_multi report 查看各实例的状态

查看实例3306的选项配置文件
my_print_defaults mysqld_multi mysqld3306
如果增加了user=root
password=
其中密码在默认情况下是加密的!

如何关闭多实例:
在【mysqld_multi】下增加
user = root
password = cyh123@
且每个实例中都有一个root 用户且密码为:cyh123@
并更改 /data/mysql/installdir/bin/mysqld_multi 命令文件
cat /data/mysql/installdir/bin/mysqld_multi
my $com= join ’ ', ‘my_print_defaults’, @defaults_options, $group;
改为如下:
my $com= join ’ ', ‘my_print_defaults -s’, @defaults_options, $group;

mysql配置多实例2.5.1 准备多个目录 mkdir -p /data/330{7,8,9}/data 2.5.2 准备配置文件 cat > /data/3307/my.cnf <<EOF[mysqld] basedir=/app/mysql datadir=/data/3307/data socket=/data/3307/mysql.sock log_error=/data/3307/mysql.log port=3307 server_id=7 log_bin=/data/3307/mysql-binEOF cat > /data/3308/my.cnf <<EOF[mysqld] basedir=/app/mysql datadir=/data/3308/data socket=/data/3308/mysql.sock log_error=/data/3308/mysql.log port=3308 server_id=8 log_bin=/data/3308/mysql-binEOF cat > /data/3309/my.cnf <<EOF[mysqld] basedir=/app/mysql datadir=/data/3309/data socket=/data/3309/mysql.sock log_error=/data/3309/mysql.log port=3309 server_id=9 log_bin=/data/3309/mysql-binEOF 2.5.3 初始化三套数据 mv /etc/my.cnf /etc/my.cnf.bak mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/app/mysql mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/app/mysql mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/app/mysql 2.5.4 systemd管理多实例 cd /etc/systemd/system cp mysqld.service mysqld3307.service cp mysqld.service mysqld3308.service cp mysqld.service mysqld3309.service vim mysqld3307.serviceExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf vim mysqld3308.serviceExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf vim mysqld3309.serviceExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf 2.5.5 授权 chown -R mysql.mysql /data/* 2.5.6 启动 systemctl start mysqld3307.service systemctl start mysqld3308.service systemctl start mysqld3309.service 2.5.7 验证多实例 netstat -lnp|grep 330 mysql -S /data/3307/mysql.sock -e "select @@server_id" mysql -S /data/3308/mysql.sock -e "select @@server_id" mysql -S /data/3309/mysql.sock -e "select @@server_id"这个步骤有问题吗
最新发布
08-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值