Windows Server 2012配置MySQL 8.0.20 MGR
1.打補丁
需要打以下補丁,以及安裝Visual C++ 2015否則mysqld.exe會報缺失下面兩個dll檔案,
從其他機器複製mysqld.exe會報無法找到程式入口點。
連結:
提取碼:odt8
vcruntime140.dll
vcruntime140_1.dll
2.解壓MySQL安裝包
使用的為免安裝版本 mysql-8.0.20-winx64.zip
3.編寫MySQL my.ini配置檔案
[mysqld] port = 4306 server-id = 430651 socket = D:\Program Files\MySQL80\data\4306\mysql.sock pid-file = D:\Program Files\MySQL80\data\4306\mysql.pid basedir = D:\Program Files\MySQL80 datadir = "D:\Program Files\MySQL80\data\4306\mysql\" explicit_defaults_for_timestamp character-set-server=utf8mb4 lower_case_table_names=1 sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # 由於程式碼SQL原因,無法使用預設的所有sql mode,只能配置這兩個,否則有大量sql執行報錯 # Buffer net_buffer_length = 8K max_allowed_packet = 256M max_heap_table_size = 256M sort_buffer_size = 2M join_buffer_size = 4M read_buffer_size = 2M read_rnd_buffer_size = 16M # log log-bin = "D:\Program Files\MySQL80\data\4306\logbin\mysql_bin" log-bin-index = "D:\Program Files\MySQL80\data\4306\logbin\mysql_bin.index" sync_binlog=1 binlog_cache_size = 512M max_binlog_cache_size = 512M # 這個引數調整過,由於研發使用navicat從5.5庫匯入一個一千萬表,作為一個事務,每次匯入三百萬時會超過該快取上限,調整到4096M解決 max_binlog_size= 256M binlog_format = row log_output = FILE log_error = D:\Program Files\MySQL80\data\4306\logs\mysql_error.log slow_query_log = 1 slow_query_log_file = D:\Program Files\MySQL80\data\4306\logs\slow_query.log general_log = 0 general_log_file = D:\Program Files\MySQL80\data\4306\logs\general_query.log binlog_expire_logs_seconds = 2592000 relay_log = "D:\Program Files\MySQL80\data\mysql_relay" # relay_log一開始設定的路徑過長,導致啟動MGR無法找到mysql_relay.index relay_log_index = "D:\Program Files\MySQL80\data\mysql_relay.index" # 縮短這兩個路徑引數重啟即解決 max_relay_log_size = 1024M relay_log_purge=ON relay_log_recovery=ON log_timestamps=SYSTEM # InnoDB disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY" # 由於之前有表為MyISAM,導致無法匯入新庫,去掉該引數,重新啟動匯入,隨後再啟用。 innodb_data_file_path = ibdata1:2048M:autoextend innodb_log_file_size = 256M innodb_log_files_in_group = 3 innodb_buffer_pool_size = 15360M innodb_undo_directory = D:\Program Files\MySQL80\data\4306\undo innodb_buffer_pool_load_at_startup=ON innodb_buffer_pool_dump_at_shutdown=ON innodb_buffer_pool_dump_pct=15 innodb_max_dirty_pages_pct=85 innodb_lock_wait_timeout=10 innodb_flush_log_at_trx_commit=2 innodb_fast_shutdown=1 innodb_io_capacity=1000 innodb_io_capacity_max=4000 transaction-isolation="READ-COMMITTED" default_storage_engine=InnoDB shared-memory # gtid gtid_mode=on enforce_gtid_consistency=ON master_verify_checksum=ON sync_master_info=1 #connections skip_name_resolve=1 max_heap_table_size=64M connect_timeout=10 wait_timeout=600 interactive_timeout=600 net_read_timeout=30 net_write_timeout=30 max_connections=300 max_connect_errors=100000 max_user_connections=500 #query long_query_time=1 log_queries_not_using_indexes=ON log_throttle_queries_not_using_indexes=10 max_join_size=10000000000 # 由於原有系統程式碼會join超大量資料,所以在不調整程式碼前提,只能調整引數 max_execution_time=20000000 # parallel replicate slave_parallel_type=LOGICAL_CLOCK slave_parallel_workers=4 # group commit binlog_group_commit_sync_delay=1 binlog_group_commit_sync_no_delay_count=1000 # mysql group replicate transaction_write_set_extraction=XXHASH64 master_info_repository=TABLE relay_log_info_repository=TABLE binlog_checksum=NONE log_slave_updates=ON slave-preserve-commit-order=on loose_group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" loose_group_replication_start_on_boot=off loose_group_replication_local_address="xx.xx.xx.xx:5306" loose_group_replication_group_seeds="xx.xx.xx.xx:5306" loose_group_replication_ip_whitelist="xx.xx.xx.xx,xx.xx.xx.xx" # 之前Linux 7.6配置MGR均無設定該引數,不報錯,Windows Server需要設定該引數 loose_group_replication_bootstrap_group=off loose_group_replication_recovery_get_public_key=on
4.配置services.msc,初始化mysql例項
# cmd下執行下面命令,配置服務: "D:\Program Files\mysql80\bin\mysqld.exe" --install mysql80 --defaults-file="D:\Program Files\mysql80\my.ini" # 由於該機器還有5.5版本MySQL,所以只能使用絕對路徑,否則,會無法啟動。 # 初始化例項 "D:\Program Files\mysql80\bin\mysqld.exe" --defaults-file="D:\Program Files\mysql80\my.ini" --initialize # 檢視errorlog,檢視臨時root密碼,登陸修改 "D:\Program Files\mysql80\bin\mysql.exe" -uroot -p -P 4306 mysql> ALTER USER 'root'@'localhost' identified by 'password';
5.建立複製使用者,建立業務使用者
mysql> create user 'repl'@'%' identified by 'password'; # 由於之前業務使用5.5版本MySQL,導致無法使用最新認證外掛,只能單獨設定外掛。 mysql> create user 'user'@'%' identified with mysql_native_password by 'password';
6.匯入資料
# 由研發使用navicat匯入源庫資料,中間有根據匯入資料包錯調整一些my.ini引數: max_join_size=10000000000 max_execution_time=20000000 max_binlog_cache_size = 512M
7.mysql備份
# cmd下使用: mysqldump -uroot -p -P 4306 -A -B --master-data=2 --single-transaction > "D:\Program Files\mysql80\mysqlbak.sql" # -A 匯出所有資料庫 # -B 匯出一些列資料庫,會包括use database語句 # --master-data=2 會將change master包含二進位制日至名以及位置作為註釋包含在輸出。 # --single-transaction 生成一個資料庫已執行快照,只支援InnoDB事務引擎,以及不能在備份期間執行ALTER TABLE, DROP TABLE, RENAME TABLE,TRUNCATE TABLE
8.MGR第二個節點恢復資料
mysql > tee D:\Program Files\mysql80\tee.log mysql > source D:\Program Files\mysql80\mysqlbak.sql mysql > notee
9.主節點啟動MGR複製
9.1 修改my.ini,安裝mgr外掛
# 去掉loose_字首所有引數。 mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
9.2 重啟mysql服務,啟動第一個節點mgr
mysql> CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='repl' FOR CHANNEL 'group_replication_recovery'; mysql> SET GLOBAL group_replication_bootstrap_group=ON; mysql> START GROUP_REPLICATION; mysql> SET GLOBAL group_replication_bootstrap_group=OFF; # 如果未成功啟動MGR,檢視error log,檢視原因,具體問題具體解決。 mysql> SELECT * FROM performance_schema.replication_group_members;
9.3 第二個節點加入MGR
1)設定my.cnf引數
# 按照必須設定引數設定,啟動mysql伺服器。 # cmd下執行下面命令,配置服務: "D:\Program Files\mysql80\bin\mysqld.exe" --install mysql80 --defaults-file="D:\Program Files\mysql80\my.ini" # 由於該機器還有5.5版本MySQL,所以只能使用絕對路徑,否則,會無法啟動。 # 初始化例項 "D:\Program Files\mysql80\bin\mysqld.exe" --defaults-file="D:\Program Files\mysql80\my.ini" --initialize
2)安裝外掛
(root@localhost) [(none)] INSTALL PLUGIN group_replication SONAME 'group_replication.so';
3)建立複製使用者
mysql> SET SQL_LOG_BIN=0; mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl@'%'; mysql> SET SQL_LOG_BIN=1; mysql> CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery'; mysql> START GROUP_REPLICATION;
9.4檢視MGR狀態
mysql> SELECT * FROM performance_schema.replication_group_members; mysql> SHOW STATUS LIKE 'group_replication_primary_member';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2706896/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Windows server 2012 R2配置NTP ServerWindowsServer
- windows server 2012 TLS 1.0WindowsServerTLS
- MySQL 8.0.20 MGR資料遷移過程以及注意事項MySql
- MYSQL8.0.20-Winx64手動配置方法MySql
- Windows Server 2012 R2 安裝 DockerWindowsServerDocker
- [雲端計算]Windows Server 2012 R2 配置AD/DNS/DHCP服務WindowsServerDNS
- windows server 2012 R2裡IIS配置.net core2.1遇到的坑WindowsServer
- 解決Windows 2012 Server的localhost解析為::1WindowsServerlocalhost
- Windows Server安全配置WindowsServer
- SQLServer 2017 install for Windows server 2012_問題彙總SQLServerWindows
- windows server 2012 R2 部署AD域服務WindowsServer
- windows server 2012更改遠端埠,限制IP訪問WindowsServer
- 伺服器如何設定Windows Server 2012防火牆管理伺服器WindowsServer防火牆
- windows server 2012R2製作qcow2映象WindowsServer
- Windows Server 2012安裝Oracle 11204報錯INS-30131WindowsServerOracle
- 在Windows server 2012R2系統安裝使用dockerWindowsServerDocker
- 雲伺服器Windows server 2012r IIS環境搭建伺服器WindowsServer
- MySQL MGR 叢集搭建MySql
- MySQL之MGR白名單MySql
- 高可用 proxysql + mysql MGRMySql
- mysql8.0.31 mgr搭建MySql
- Windows Server2012 故障轉移叢集之動態仲裁(Dynamic Quorum)WindowsServer
- 如何在Windows Server 2012及更高版本中將域控制器降級WindowsServer
- Windows Server 2012中通過WEB修改域使用者賬號密碼WindowsServerWeb密碼
- Windows Server 2012/2016 在桌面上顯示“我的電腦”圖示WindowsServer
- SQL server2012解除安裝SQLServer
- 【Mysql】Windows下安裝和配置MysqlMySqlWindows
- Windows 系統 SQL Server 配置使用安全模式WindowsSQLServer模式
- Windows server 2016的安裝網路配置WindowsServer
- Ubuntu 24.04 二進位制安裝 MySQL 8.0.20UbuntuMySql
- windows server2008安裝mysql資料庫WindowsServerMySql資料庫
- docker安裝mysql8.0.20並遠端連線DockerMySql
- Bash 指令碼安裝 MySQL-8.0.20 資料庫指令碼MySql資料庫
- 在Windows Server 2012 R2域環境中禁用(取消)密碼複雜策略WindowsServer密碼
- Windows 安裝並配置 MySQL 5.6WindowsMySql
- MySQL組複製(MGR)全解析 Part 5 MGR單主模式部署指南MySql模式
- SQL Server2012 安裝方法詳解SQLServer
- SQL Server 2012免費版LocalDB簡介ISSQLServer