標籤:mysql單機多執行個體部署
一、MySQL多執行個體部署
版本:5.7.18
1.軟體安裝
# tar xf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local# cd /usr/local# chown -R root.root mysql-5.7.18-linux-glibc2.5-x86_64# ln -sv mysql-5.7.18-linux-glibc2.5-x86_64 mysql5.7.18# mkdir /data/{mydata3307,mydata3308}# chown -R mysql.mysql /data/mydata33*
2.提供多執行個體服務啟動指令碼
# cd /usr/local/mysql5.7.18# cp support-files/mysqld_multi.server /etc/init.d/mysqld_multi# chmod +x /etc/init.d/mysqld_multi# chkconfig --add mysqld_multi# vi /etc/init.d/mysqld_multiexport PATH=$PATH:/usr/local/mysql5.7.18/binbasedir=/usr/local/mysql5.7.18bindir=/usr/local/mysql5.7.18/bin
3.提供設定檔
# cat /etc/my.cnf[mysql]#password = 123456#prompt = [\\[email protected]\\h][\\d]>\\_socket = /tmp/mysql5.7.18.sock[client]#password = 123456#prompt = [\\[email protected]\\h][\\d]>\\_socket = /tmp/mysql5.7.18.sock[mysqld_multi]mysqld = /usr/local/mysql5.7.18/bin/mysqld_safemysqladmin =/usr/local/mysql5.7.18/bin/mysqladminlog =/data/mydata3307/mysqld_multi.log# 每個執行個體都設定統一管理密碼,方便使用服務指令碼停止執行個體user = rootpass = 123456#初始化需要[mysqld]段配置,否則初始化的時候載入不到[mysqld3307]及[mysqld3308]段中關於設定獨立undo資料表空間及共用資料表空間大小[mysqld]innodb_buffer_pool_size = 4096M#innodb_buffer_pool_size = 16384Minnodb_undo_log_truncate=ONinnodb_undo_tablespaces = 2innodb_data_file_path=ibdata1:1G:autoextend[mysqld3307]innodb_buffer_pool_size = 4096M#innodb_buffer_pool_size = 16384Mport = 3307socket = /data/mydata3307/mysql5.7.18.sockskip-external-lockingkey_buffer_size = 256Mmax_allowed_packet = 10Mtable_open_cache = 256sort_buffer_size = 1Mread_buffer_size = 1Mread_rnd_buffer_size = 4Mmyisam_sort_buffer_size = 16Mthread_cache_size = 4max_connections=1500character_set_server=utf8group_concat_max_len=65535log_bin_trust_function_creators=1log_queries_not_using_indexes = ONlog_throttle_queries_not_using_indexes = 2interactive_timeout = 600wait_timeout = 600connect_timeout = 10expire_logs_days = 30replicate-ignore-db=information_schemareplicate-ignore-db=performance_schemareplicate-ignore-db=mysqlreplicate-ignore-db=syslog_timestamps=SYSTEMinnodb_print_all_deadlocks=1basedir=/usr/local/mysql5.7.18datadir=/data/mydata3307innodb_undo_log_truncate=ONinnodb_undo_tablespaces = 2innodb_data_file_path=ibdata1:1G:autoextendcore_filesync_binlog = 0innodb_flush_log_at_trx_commit = 2##Master#log-bin=mysql-binlog-bin=/data/mydata3307/mysql-bin#binlog_format=mixedbinlog_format=rowserver-id=3307lower_case_table_names = 1skip-name-resolveinnodb_file_per_table=1long_query_time=2slow_query_log=1slow_query_log_file=/data/mydata3307/slow-query.logsql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘#slaveslave-parallel-type=LOGICAL_CLOCK#slave-parallel-workers=16slave-parallel-workers=4master_info_repository=TABLErelay_log_info_repository=TABLErelay_log_recovery=ONslave_preserve_commit_order=1log-slave-updates=trueslave_skip_errors=‘1032,1062‘relay_log=/data/mydata3307/localhost-relay-bin####gtid######gtid_mode = ONenforce_gtid_consistency = ONmaster_verify_checksum = 1slave_sql_verify_checksum = 1[mysqld3308]innodb_buffer_pool_size = 2048M#innodb_buffer_pool_size = 16384Mport = 3308socket = /data/mydata3308/mysql5.7.18.sockskip-external-lockingkey_buffer_size = 256Mmax_allowed_packet = 10Mtable_open_cache = 256sort_buffer_size = 1Mread_buffer_size = 1Mread_rnd_buffer_size = 4Mmyisam_sort_buffer_size = 16Mthread_cache_size = 4max_connections=1500character_set_server=utf8group_concat_max_len=65535log_bin_trust_function_creators=1log_queries_not_using_indexes = ONlog_throttle_queries_not_using_indexes = 2interactive_timeout = 600wait_timeout = 600connect_timeout = 10expire_logs_days = 30replicate-ignore-db=information_schemareplicate-ignore-db=performance_schemareplicate-ignore-db=mysqlreplicate-ignore-db=syslog_timestamps=SYSTEMinnodb_print_all_deadlocks=1basedir=/usr/local/mysql5.7.18datadir=/data/mydata3308innodb_undo_log_truncate=ONinnodb_undo_tablespaces = 2innodb_data_file_path=ibdata1:1G:autoextendcore_filesync_binlog = 0innodb_flush_log_at_trx_commit = 2##Master#log-bin=mysql-binlog-bin=/data/mydata3308/mysql-bin#binlog_format=mixedbinlog_format=rowserver-id=3308lower_case_table_names = 1skip-name-resolveinnodb_file_per_table=1long_query_time=2slow_query_log=1slow_query_log_file=/data/mydata3308/slow-query.logsql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘#slaveslave-parallel-type=LOGICAL_CLOCK#slave-parallel-workers=16slave-parallel-workers=4master_info_repository=TABLErelay_log_info_repository=TABLErelay_log_recovery=ONslave_preserve_commit_order=1log-slave-updates=trueslave_skip_errors=‘1032,1062‘relay_log=/data/mydata3308/localhost-relay-bin####gtid######gtid_mode = ONenforce_gtid_consistency = ONmaster_verify_checksum = 1slave_sql_verify_checksum = 1
4.初始化執行個體
執行個體3307# cd /usr/local/mysql5.7.18/bin# ./mysqld --user=mysql --basedir=/usr/local/mysql5.7.18/ --datadir=/data/mydata3307/ --initialize --initialize-insecure執行個體3308# ./mysqld --user=mysql --basedir=/usr/local/mysql5.7.18/ --datadir=/data/mydata3308/ --initialize --initialize-insecure
5.啟動服務
# service mysqld_multi start# service mysqld_multi reportReporting MySQL serversMySQL server from group: mysqld3307 is runningMySQL server from group: mysqld3308 is running# ss -ntpl | grep mysqldLISTEN 0 128 :::3307 :::* users:(("mysqld",8004,29))LISTEN 0 128 :::3308 :::* users:(("mysqld",8003,29))多執行個體啟動成功
6.設定管理帳號密碼
預設初始化密碼為空白,提示輸入密碼時,直接斷行符號# mysqladmin -uroot -p password 123456 -S /data/mydata3307/mysql5.7.18.sock# mysqladmin -uroot -p password 123456 -S /data/mydata3308/mysql5.7.18.sock
7.停止執行個體
# service mysqld_multi stop 3307# service mysqld_multi reportReporting MySQL serversMySQL server from group: mysqld3307 is not runningMySQL server from group: mysqld3308 is running
注意:
多執行個體服務啟動指令碼啟動報錯
[[email protected] mysql5.7.18]# service mysqld_multi start
WARNING: my_print_defaults command not found.
Please make sure you have this command available and
in your path. The command is available from the latest
MySQL distribution.
ABORT: Can‘t find command ‘my_print_defaults‘.
This command is available from the latest MySQL
distribution. Please make sure you have the command
in your PATH.
修改/etc/init.d/mysqld_multi
export PATH=$PATH:/usr/local/mysql5.7.18/bin
本文出自 “linux之路” 部落格,請務必保留此出處http://hnr520.blog.51cto.com/4484939/1923890
MySQL單機多執行個體部署