MySQL9.1.0實現(xiàn)GTID模式的項目實踐
本章節(jié)實現(xiàn)MySQL主從復制GTID模式
主機 | IP地址 | 端口 |
---|---|---|
mysql-master | 192.168.239.100 | 3306 |
mysql-slave1 | 192.168.239.110 | 3306 |
mysql-slave2 | 192.168.239.120 | 3306 |
1 實驗準備工作
1.1 下載并安裝官方MySQL的rpm包
[root@master mysql_rpm]# yum localinstall mysql-community-server-9.1.0-1.el7.x86_64.rpm \ mysql-community-common-9.1.0-1.el7.x86_64.rpm \ mysql-community-client-9.1.0-1.el7.x86_64.rpm \ mysql-community-icu-data-files-9.1.0-1.el7.x86_64.rpm \ mysql-community-libs-9.1.0-1.el7.x86_64.rpm \ mysql-community-client-plugins-9.1.0-1.el7.x86_64.rpm
1.2 設置DNS解析
[root@master ~]# cat >> /etc/hosts <<EOF > 192.168.239.100 master > 192.168.239.110 slave1 > 192.168.239.120 slave2 > EOF ? [root@slave1 ~]# cat >> /etc/hosts <<EOF > 192.168.239.100 master > 192.168.239.110 slave1 > 192.168.239.120 slave2 > EOF ? [root@slave2 ~]# cat >> /etc/hosts <<EOF > 192.168.239.100 master > 192.168.239.110 slave1 > 192.168.239.120 slave2 > EOF
1.3 修改密碼
MASTER SLAVE1 SLAVE2 均是以下這樣設置
# 改變密碼策略 [root@master ~]# cat >> /etc/my.cnf <<EOF validate_password.policy=LOW validate_password.length=0 EOF ? # 啟動MySQL服務 [root@master ~]# systemctl start mysqld [root@master ~]# grep password /var/log/mysqld.log 2024-12-14T14:29:20.406601Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: (:lt/hLIW4da [root@master ~]# mysql -uroot -p'(:lt/hLIW4da' ? # 修改數(shù)據(jù)庫密碼 mysql> alter user 'root'@'localhost' identified by '123456'; mysql> flush privileges;
2 GTID模式實現(xiàn)主從復制
2.1 增加配置文件內(nèi)容
[root@master ~]# cat >> /etc/my.cnf <<EOF log_bin=mysql-bin symbolic-links=0 # 禁用符號鏈接 server_id=10 # 設置serverID 為機器的標識符 ? log_bin=mysql-bin # 開啟 log_bin 日志 # 開啟GTID的前提 gtid_mode=ON enforce-gtid-consistency=ON EOF ? ? [root@slave1 ~]# cat >> /etc/my.cnf <<EOF log_bin=mysql-bin symbolic-links=0 # 禁用符號鏈接 server_id=20 # 設置serverID 為機器的標識符 ? # 開啟GTID的前提 gtid_mode=ON enforce-gtid-consistency=ON EOF ? ? [root@slave2 ~]# cat >> /etc/my.cnf <<EOF log_bin=mysql-bin symbolic-links=0 # 禁用符號鏈接 server_id=30 # 設置serverID 為機器的標識符 ? # 開啟GTID的前提 gtid_mode=ON enforce-gtid-consistency=ON EOF ? # 重啟 MySQL 服務重新加載 [root@master ~]# systemctl restart mysqld [root@slave1 ~]# systemctl restart mysqld [root@slave2 ~]# systemctl restart mysqld
2.2 創(chuàng)建主從復制賬號
MASTER
mysql> set sql_log_bin=0; # 關閉二進制SQL日志寫入 Query OK, 0 rows affected (0.00 sec) ? mysql> show variables like 'sql_log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | sql_log_bin | OFF | +---------------+-------+ ? mysql> CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; ? # 賦予所有庫所有表 repl 用戶 REPLICATION SLAVE 的權限 mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; mysql> FLUSH PRIVILEGES; mysql> set sql_log_bin=1;
SLAVE1
mysql> set sql_log_bin=0; Query OK, 0 rows affected (0.00 sec) ? mysql> show variables like 'sql_log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | sql_log_bin | OFF | +---------------+-------+ ? mysql> CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; mysql> FLUSH PRIVILEGES; mysql> set sql_log_bin=1;
SLAVE2
mysql> set sql_log_bin=0; Query OK, 0 rows affected (0.00 sec) ? mysql> show variables like 'sql_log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | sql_log_bin | OFF | +---------------+-------+ ? mysql> CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; mysql> FLUSH PRIVILEGES; mysql> set sql_log_bin=1;
2.3 實現(xiàn)GTID的自動定位
SLAVE1 && SLAVE2
mysql> SET SQL_LOG_BIN=0; # 關閉語句記錄 ? # 指定主服務器的IP端口以及授權過的用戶repl,并開啟自動定位 mysql> CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.239.100', SOURCE_PORT=3306, SOURCE_USER='repl', SOURCE_PASSWORD='123456', GET_SOURCE_PUBLIC_KEY=1, # 信任證書 SOURCE_AUTO_POSITION=1; # 開啟自動定位功能 ? mysql> START REPLICA; ? # 假如說失敗需要執(zhí)行 STOP REPLICA; 停止復制 # 之后再執(zhí)行 RESET REPLICA; 刪除配置的語句 ? # 查看連接 master 是否正常 mysql> SHOW REPLICA STATUS\G *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event Source_Host: 192.168.239.100 Source_User: repl Source_Port: 3306 Connect_Retry: 60 Source_Log_File: mysql-bin.000001 Read_Source_Log_Pos: 158 Relay_Log_File: slave2-relay-bin.000002 Relay_Log_Pos: 375 Relay_Source_Log_File: mysql-bin.000001 Replica_IO_Running: Yes # IO表示鏈接網(wǎng)絡沒有問題 Replica_SQL_Running: Yes # SQL表示本地同步?jīng)]有問題,如有問題基本上就是配置文件的問題 ? ? mysql> SET SQL_LOG_BIN=0; # 開啟語句記錄
3 導入數(shù)據(jù)查看是否成功
3.1 主服務器導入SQL腳本
[root@master ~]# mysql -uroot -p123456 mysql> create database gtid; Query OK, 1 row affected (0.00 sec) ? mysql> use gtid Database changed mysql> source gtid.sql; Query OK, 0 rows affected (0.00 sec) ? Query OK, 0 rows affected (0.00 sec) ? ? mysql> show tables; +----------------------------------------+ | Tables_in_gtid | +----------------------------------------+ | aaa | | abi_http_log | | act_app_appdef | | act_app_databasechangelog | | act_app_databasechangeloglock | +----------------------------------------+
3.2 兩個從服務器查看是否復制同步
[root@ slave1 && slave2]# mysql -uroot -p123456 mysql> show databases; +--------------------+ | Database | +--------------------+ | gtid | | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.01 sec) mysql> use gtid Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables +----------------------------------------+ | Tables_in_gtid | +----------------------------------------+ | aaa | | abi_http_log | | act_app_appdef | | act_app_databasechangelog | | act_app_databasechangeloglock | +----------------------------------------+
到此這篇關于MySQL9.1.0實現(xiàn)GTID模式的項目實踐的文章就介紹到這了,更多相關MySQL9.1.0 GTID模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Kubernetes集群環(huán)境部署MySQL數(shù)據(jù)庫的實戰(zhàn)記錄
這篇文章主要介紹了使用Kubernetes集群環(huán)境部署MySQL數(shù)據(jù)庫,主要包括編寫 mysql.yaml文件,執(zhí)行如下命令創(chuàng)建,通過相關命令查看創(chuàng)建結果,對Kubernetes部署MySQL數(shù)據(jù)庫的過程感興趣的朋友一起看看吧2022-05-05MySQL數(shù)據(jù)庫觸發(fā)器從小白到精通
觸發(fā)器是SQLserver提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執(zhí)行不是由程序調用,也不是手工啟動,而是由事件來觸發(fā),比如當對一個表進行操作時就會激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強數(shù)據(jù)的完整性約束和業(yè)務規(guī)則等2022-03-03JDK1.7下測試ConnectorJ連接MySQL8.0的方法
MySQL?Connector/J是一個JDBC?4型驅動程序。Type?4標志意味著驅動程序是MySQL協(xié)議的純Java實現(xiàn),不依賴于MySQL客戶端庫,這篇文章主要介紹了JDK1.7下測試ConnectorJ連接MySQL8.0,需要的朋友可以參考下2022-10-10Mysql滿意度調查分組去除最高最低求平均分的實現(xiàn)思路
該文章介紹了如何使用SQL查詢實現(xiàn)按部門分組,去除每個部門的最高分和最低分,并計算剩余分數(shù)的平均分,文章詳細描述了實現(xiàn)這一需求的步驟,包括使用窗口函數(shù)、子查詢和CTE等技術,感興趣的朋友跟隨小編一起看看吧2025-01-01mysql "too many connections" 錯誤 之 mysql解決方法
解決方法是修改/etc/mysql/my.cnf,添加以下一行2009-06-06