1. 程式人生 > >單檔案mysql-Multi-Instance

單檔案mysql-Multi-Instance

初始化多例項:
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 [email protected] -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 = [email protected]
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 = [email protected]
且每個例項中都有一個root 使用者且密碼為:[email protected]
並更改 /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;