您好,登錄后才能下訂單哦!
一、準備(主從都需要配置): yum -y install mysql mysql-server #安裝mysql yum -y install ntpdate #安裝時間同步 echo '*/1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root #配置網絡時間同步 service mysqld start #啟動服務 chkconfig --add mysqld #添加為系統服務 chkconfig mysqld on #開啟默認運行級別 二、主服務器配置:主配置文件默認為:/etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 log-bin=master-bin #開啟二進制日志文件 server-id=1 #設置服務器id,保證全局唯一 sync-binlog=1 #全局唯一的server-id innodb-flush-logs-at-trx-commit=1 innodb-support-xa=1 service mysqld restart #重啟動服務 mysql> show global variables like '%server%'; #數據庫id mysql> show master logs; #查看數據庫二進制日志 mysql> show master status; #查看主服務器狀態,記住二進制日志名,配置從服務器會用 mysql> grant replication slave,replication client on *.* to 'copy'@'192.168.0.50' identified by '123.com'; #授權192.168.0.50主機上的copy用戶對所有庫有復制權限 mysql> select Host,User,Password from mysql.user; #查看用戶 三、從服務器配置: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 relay-log=slave-log #啟用中繼日志 server-id=10 #服務器id,全局唯一 read-only=1 #將服務器設置為只讀模式(對擁有root權限的用戶無效) service mysqld restart #重啟動服務 mysql> change master to master_host='192.168.0.10',master_user='copy', master_password='123.com',master_log_file='master-bin.000001',master_log_pos=590; master_host #主服務器地址 master_user #擁有復制權限的用戶 master_password #密碼 master_log_file #從哪個二進制日志開始復制 master_log_pos #從二進制日志的什么位置開始復制 mysql> start slave; #開啟從服務器 mysql> show slave status\G; #查看從服務器狀態 四、驗證主從: 主服務器: mysql> create database db_test; #創建數據庫 從服務器: mysql> show databases; #查看服務器是否同步 五、主主復制 服務器A: [mysqld] #添加內容 log-bin=master-bin #啟用二進制日志 relay-log=slave-log #啟用中繼日志 server-id=1 #服務器id,全局唯一 auto-increment-offset=1 #自增列起始 auto-increment-increment=2 #自增列一次步進(例:1,3,5,7,9...) mysql> grant replication slave,replication client on *.* to 'copy'@'192.168.0.50' identified by '123.com'; mysql> change master to master_host='192.168.0.50',master_user='copy', master_password='123.com',master_log_file='master-bin.000001',master_log_pos=106; mysql> start slave; mysql> show slave status\G; 服務器B: [mysqld] #添加內容 log-bin=master-bin relay-log=slave-log server-id=10 auto-increment-offset=2 #自增列起始 auto-increment-increment=2 #自增列一次步進(例:2,4,6,8,10...) mysql> grant replication slave,replication client on *.* to 'copy'@'192.168.0.10' identified by '123.com'; mysql> change master to master_host='192.168.0.10',master_user='copy', master_password='123.com',master_log_file='master-bin.000003',master_log_pos=106; mysql> start slave; mysql> show slave status\G; 六、半同步復制 要想使用半同步復制,必須滿足以下幾個條件: 1. MySQL 5.5及以上版本 2. 變量have_dynamic_loading為YES 3. 異步復制已經存在 主: mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; #安裝插件 mysql> show plugins; #查看插件是否安裝成功 mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1; #啟用半同步 mysql> show status like 'Rpl_semi_sync_master_status'; #查看是否在運行 從: mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; #安裝插件 mysql> show plugins; mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1; #啟用半同步 mysql> STOP SLAVE #關閉復制線程 mysql> START SLAVE #開啟復制線程 mysql> show status like 'Rpl_semi_sync_slave_status'; #查看是否在運行 mysql> show variables like '%Rpl%'; #查看和半同步相關的服務器變量 rpl_semi_sync_master_enabled #是否啟用半同步 rpl_semi_sync_master_timeout #等待超時時間 rpl_semi_sync_master_wait_for_slave_count #需要等待多少個slave應答,才能返回給客戶端 mysql> show status like '%Rpl_semi%'; #半同步狀態 Rpl_semi_sync_master_clients #當前半同步復制從的個數 七、和復制相關的文件 從節點: master.info:用于保存slave連接至master時的相關信息(賬號,密碼,服務器地址,復制的二進制文件等) relay-log.info:保存當前slave節點上已經復制到的二進制文件位置,和relay-log的位置
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。