centos7 mysql互為主從+keepalived
一、互為主從配置
1.1、資源情況
192.168.11.177 server1
192.168.11.180 server2
192.168.11.210 VIP
1.2、server1配置
# vi /etc/my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
relay_log=mysql-realy-bin
relay_log_index=slave-mysql-realy-bin.index
expire_logs_days=15
binlog_format=mixed
auto-increment-increment=2
auto-increment-offset= 1
innodb_flush_log_at_trx_commit=1
replicate-ignore-db=sys
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
datadir=/data/mysql_data
socket=/var/lib/mysql/mysql.sock
character_set_server=utf8
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# innodb optimization
innodb_buffer_pool_size=8G
innodb_log_file_size=256M
innodb_flush_method=O_DIRECT
max_connections=500
innodb_autoextend_increment=128
1.3、server2配置
# vi /etc/my.cnf
server-id=2
log-bin=mysql-bin
relay_log=mysql-realy-bin
relay_log_index=slave-realy-bin.index
expire_logs_days=15
binlog_format=mixed
auto-increment-increment=2
auto-increment-offset= 2
innodb_flush_log_at_trx_commit=1
replicate-ignore-db=sys
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
datadir=/data/mysql_data
socket=/var/lib/mysql/mysql.sock
character_set_server=utf8
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# innodb optimization
innodb_buffer_pool_size=8G
innodb_log_file_size=256M
innodb_flush_method=O_DIRECT
max_connections=500
innodb_autoextend_increment=128
1.4、server1、server2上修改賬戶密碼,建立同步賬戶
# mysql -p
mysql> set password=password('******');
mysql> create user [email protected]'%' identified by '******';
mysql> grant replication slave, replication client on *.* to [email protected]'%';
1.5、server2建立同步
server1的master狀態
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 | 882 | | | |
+------------------+----------+--------------+------------------+-------------------+
mysql> CHANGE MASTER TO MASTER_HOST='192.168.11.177', MASTER_USER='repluser', MASTER_PASSWORD='******', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=882;
Query OK, 0 rows affected, 2 warnings (0.10 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.11.177
Master_User: repluser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 882
Relay_Log_File: mysql-realy-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB: sys,mysql,information_schema,performance_schema
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 882
Relay_Log_Space: 154
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 0
Master_UUID:
Master_Info_File: /data/mysql_data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
# vi /data/mysql_data/auto.cnf
[auto]
server-uuid=cbcefb67-9f9a-11e8-91b3-06ba24001d86
>
server-uuid=cbcefb77-9f9a-11e8-91b3-06ba24001d86
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.11.177
Master_User: repluser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 882
Relay_Log_File: mysql-realy-bin.000003
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: sys,mysql,information_schema,performance_schema
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 882
Relay_Log_Space: 527
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: cd146946-9f95-11e8-9a29-063696001d83
Master_Info_File: /data/mysql_data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
mysql> start slave;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1.6、server1建立同步
mysql> CHANGE MASTER TO MASTER_HOST='192.168.11.180', MASTER_USER='repluser', MASTER_PASSWORD='******', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=154;
Query OK, 0 rows affected, 2 warnings (0.22 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.11.180
Master_User: repluser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 154
Relay_Log_File: mysql-realy-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: sys,mysql,information_schema,performance_schema
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 154
Relay_Log_Space: 527
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 2
Master_UUID: cbcefb67-9f9a-11e8-91b3-06ba24001d86
Master_Info_File: /data/mysql_data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
mysql> create database ceshi_db;
Query OK, 1 row affected (0.01 sec)
mysql> use ceshi_db1;
Database changed
mysql> create table home(id int(10) not null,name char(10));
Query OK, 0 rows affected (0.14 sec)
1.7、server2驗證
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ceshi_db |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> use ceshi_db;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_ceshi_db |
+--------------------+
| home |
+--------------------+
1 row in set (0.00 sec)
mysql> create database ceshi_db1;
Query OK, 1 row affected (0.01 sec)
mysql> create table home(id int(10) not null,name char(10));^C
mysql> use ceshi_db1;
Database changed
mysql> create table home(id int(10) not null,name char(10));
Query OK, 0 rows affected (0.09 sec)
1.8、server1驗證
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ceshi_db |
| ceshi_db1 |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
mysql> use ceshi_db1;
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_ceshi_db1 |
+---------------------+
| home |
+---------------------+
1 row in set (0.00 sec)
二、keepalived配置
2.1、server1配置
# cat /etc/keepalived/keepalived.conf
global_defs {
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id mysql-1
}
vrrp_script chk_mysql {
script "/etc/keepalived/scripts/mysql_check.sh"
interval 2
weight -5
fall 2
rise 1
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 61
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_mysql
}
virtual_ipaddress {
182.168.11.210
}
}
2.2、server2配置
# cat /etc/keepalived/keepalived.conf
global_defs {
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id mysql-2
}
vrrp_script chk_mysql {
script "/etc/keepalived/scripts/mysql_check.sh"
interval 2
weight -5
fall 2
rise 1
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 61
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_mysql
}
virtual_ipaddress {
182.168.11.210
}
}
2.3、指令碼
# cat /etc/keepalived/scripts/mysql_check.sh
#!/bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)
if [ "${counter}" -eq 0 ]; then
service keepalived stop
fi
2.4、不搶佔模式
如果把server1設定為VIP不搶佔模式,做下面修改
server1
# vi /etc/keepalived/keepalived.conf
新增
nopreempt
state MASTER
>
state BACKUP
#防止切換到從庫後,主keepalived恢復後自動切換回主庫
參考:
https://blog.csdn.net/qq_36276335/article/details/69942101
https://www.cnblogs.com/kevingrace/p/6710136.html
相關推薦
centos7 mysql互為主從+keepalived
一、互為主從配置 1.1、資源情況 192.168.11.177 server1 192.168.11.180 server2 192.168.11.210 VIP 1.2、server1配置 # vi /etc/my.cnf [mysqld] serve
MySQL高可用,MySQL互為主從+keepalived。
一:環境:centos7.5 MySQL5.7192.168.3.222 master192.168.3.158 slave192.168.3.223 VIP二:首先做出雙主來以下操作兩臺機器都要做2.1:首先域名解析: ###vim /etc/hosts (兩臺都做) 192.168.3.222 mast
mysql互為主從複製MM+keepalived高可用
mysql雙主MM+keepalived高可用方案 一.安裝單機mysql伺服器 1.資源分配 伺服器名 IP VIP MYSQL版本 Master
KeepAlived+MySQL互為主從
解決Master單點問題,兩臺mysql互為主備,雙向replication。當一master掛了,則將slave切換為master,繼續工作。好,給定兩臺機器 主機A:192.168.1.201 主機B:192.168.1.202 一、互為主從
mysql互為主從的環境,更新一條語句同時提交,為什麽會出現數據不一致?
mysql互為主從的環境 更新一條語句同時提交 為什麽會出現數據不一致? mysql互為主從的環境,更新一條語句同時提交,為什麽會出現數據不一致?m1:begin;update t1 set c2=‘b1‘ where c1=2;commit;m2:begin;update t1 set c2=‘
mysql 互為主從
mysql 互為主從ubuntu 服務器mysql5.9開啟功能分別在主從服務器上編輯mysql配置文件#vim /etc/mysql/mysql.conf.d/mysqld.cnf 增加下面兩行bind-address = 0.0.0.0 #修改為允許任意服務器訪問log-bin=mysqlserver
mysql互為主從配置
一、MYSQL主從備份的原理 mysql支援單向、非同步複製,在複製的過程中,一個為主伺服器,另一個為從伺服器。主伺服器進行的操作sql 操作都會記錄到 bin-log 指定的檔案中,如果沒有指定,一般為mysql-bin.0000XX檔案中。從伺服
實驗:基於keepalived實現兩臺realserver服務器中的nginx和php-fpm服務互為主從
基於keepalived實現nginx和php-fpm互為主從 基於keepalived實現兩臺realserver服務器中的nginx和php-fpm服務互為主從 思路:利用兩個VIP,一個定位nginx,一個定位php-fpm步驟:1、準備兩臺基於LNMP架構的服務器(能夠提供正常的web服務)2、在ng
Mysql實現企業級主從復制和互為主從模式架構
mysql 在實現mysql的多種模式前提下,首先先介紹一下mysql是如何工作的。 大概網絡拓撲圖如下: 1、該過程的第一部分就是master記錄二進制日誌。在每個事務更新數據完成之前,master在二進制日誌記錄這些改變。MySQL將事務串行的寫入二進制日誌,在事件寫入二進制日誌完成後,mast
Mysql如何實現雙向互為主從復制?
MySQL數據庫 數據庫管理員 北京MySQL 雙向互為主從步驟:1 兩臺機器添加一個叢機訪問的賬戶賦予 replication slave權限mysql> grant replication slave on *.* to 'rep'@'172.16.1.%'
centOS7 MySQL主從
password file systemctl script ide 配置 for set 二進制日誌 修改 /etc/sysconfig/network-scripts/ifcfg-ens33 的ONBOOT=yes重啟網卡 service network restart
liinux安裝 mysql 及主從複製 mysql+centos7+主從複製
mariadb其實就是mysql mysql已經被oracle收購,它即將閉源,馬上要開始收費了 因此還想免費試用開源的資料庫mysql,就在centos7上,將mysql分支為mariadb 安裝mariadb,在centos7底下: linux軟體包的格式 mysql.rpm
Linux CentOS7 配置MYSQL資料庫主從
1、在主資料庫裡建立一個同步賬號 每個從資料庫會使用一個MySQL賬號來連線主資料庫,所以我們要在主資料庫裡建立一個賬號,並且該賬號要授予REPLICATION SLAVE 許可權,你可以為每個從資料庫分別建立賬號,當然也可以用同一個!你可以用原來的賬號不一定要新創賬號,但你應該注意,這個賬號和密碼會被明文存
LInux CentOS7 MySql 5.7.23主從複製(主從同步)
一、編輯主伺服器mysql 配置檔案 vim /etc/my.conf server-id=1 #伺服器id (主從必須不一樣) log-bin=mysql-bin #開啟日誌(主機需要開啟),這個mysql-bin也可以自定義,這裡也可以加上路徑作為主機的配
Mysql主從複製的配置(雙機互為主從)
author: selfimpr blog: http://blog.csdn.net/lgg201 mail: [email protected] announce: 轉載請保留出處 目的: 讓兩臺mysql伺服器可以互為主從提供同步服務. 優點: 1.
讓兩臺伺服器的MySQL(5.7)資料同步_主主同步(互為主從關係)
網上找的大部分定義master-host的其實在新的MySQL中已經停用了,於是乎很悲劇的自己探索寫出了這麼一個東西 RedHat版本7.0 MySQL版本 5.7 伺服器名稱為假的!!!伺服器名稱為假的!!!伺服器名稱為假的!!! 重要事情說三遍~ 另外需要注意的是,你同
基於Centos7+docker+Mysql的主從、主從從模式配置
系統架構 Master節點: 192.168.3.112 Relay節點: 192.168.3.122 Slave節點: 192.168.3.12 基於Docker 執行Mysql 前提: 服務都已經按照好docker,防火牆
MySQL之主從切換
mysql 主從切換 在一主多從的環境中,如主庫為M,從庫為S1、S2,當主庫出現故障時,主從切換的詳細步驟如下:1 首先要保證所有從庫已經執行了relay log中的全部更新,用以下語句查看:mysql> show processlist\G直到看到下面的語句,表示全部更新執行完畢。Has re
centos7 mysql數據庫安裝和配置
web 大小 images etc 安裝mysql 安裝 commands 0 rows type 一、系統環境 yum update升級以後的系統版本為 [[email protected]/* */ yl]# cat /etc/redhat-relea
mysql 簡單主從
.cn 虛擬機克隆 sql stop keyword ttr mysqld nlog mysq 主服務器master [[email protected]/* */ ~]# vim /etc/my.cnf [mysqld] log-bin=mysql-bin