雙主數據庫mysql
|
綜合實驗前提:sql 這裏介紹雙主數據庫,能夠根據雙主數據庫來作單循環數據庫,配置基本相同
1.雙主數據庫:數據庫 問題:主鍵衝突:vim 解決方法:等差鏈接ide
2.單循環:spa 解決主庫不夠,增長訪問量——單循環rest 單循環無論是幾臺。只要壞一臺,就只有一臺是完整的。日誌 因此通常雙主或者三主就能夠了orm
3.一主庫拖8從庫server
雙主數據庫實驗: 注意:id不能重複
兩臺mysqlIP地址 192.168.117.136 192.168.117.137 show master status; show slave status\G; 【主從數據庫】 1.先136主,137從 136配置: mysql -u root -p123 create database lidb; use mysql; show tables; select Host,User,password from user; insert into mysql.user(Host,User,Password) values('localhost','backli',password('123')); mysql> select Host,User,password from user; grant replication slave on *.* to 'backli'@'192.168.117.137' identified by '123'; flush privileges; exit
備份數據庫: mysqldump -u root -p lidb > lidbbak.sql
將備份數據庫傳給另外一臺數據庫 scp lidbbak.sql root@192.168.117.137:/root
編輯配置文件: vim /etc/my.cnf log-bin=mysql-bin # binary logging format - mixed recommended 添加: binlog_format=mixed binlog_do_db=lidb binlog_ignore_db=mysql auto_increment_increment=10 auto_increment_offset=1
啓動服務 service mysqld restart
137配置另外一臺: 1.建立相同的數據庫,而後還原數據 create database lidb; source /root/lidbbak.sql 2.編輯配置文件 vim /etc/my.cnf 添加: log-bin=mysql-bin replicate_do_db=lidb replicate_ignore_db=mysql log_slave_updates=on server-id = 2 啓動服務 service mysqld restart
3.首先進入master庫,查看二進制日誌問價名稱和偏移量 mysql -u root -p123 show master status; 4.進入slave數據庫,配置鏈接master的IP地址,數據庫用戶,密碼,日誌名稱,偏移量編號,設置拉取同步操做 mysql -u root -p123 slave stop;
mysql> change master to -> master_host='192.168.117.136', -> master_user='backli', -> master_password='123', -> master_log_file='mysql-bin.000004', -> master_log_pos=107;
slave start; show slave status\G;
4.驗證: 在主數據master上建立數據庫,而後到slave上看,就會同步過去; Master: create table aaa(id int,name char(10)); Query OK, 0 rows affected (0.21 sec) Slave: mysql> show tables ; +----------------+ | Tables_in_lidb | +----------------+ | aaa | +----------------+ 1 row in set (0.00 sec)
【反向主從:】 192.168.117.137爲主master 192.168.117.136爲從slave 137主配置: 1.建立用戶,主機名,密碼,並設置給從庫複製的權限 mysql -u root -p123 insert into mysql.user(Host,User,Password) values('localhost','backli2',password('123')); grant replication slave on *.* to 'backli2'@'192.168.117.136' identified by '123'; flush privileges;
2.編輯配置文件: vim /etc/my.cnf binlog_format=mixed binlog_do_db=lidb binlog_ignore_db=mysql auto_increment_increment=10 auto_increment_offset=2
啓動服務 service mysqld restart
136——slave庫配置: 1.編輯配置文件, vim /etc/my.cnf 添加: log-bin=mysql-bin replicate_do_db=lidb replicate_ignore_db=mysql log_slave_updates=on
2. 首先進入master庫,查看二進制日誌問價名稱和偏移量 mysql -u root -p123 show master status;
3. 進入slave數據庫,配置鏈接master的IP地址,數據庫用戶,密碼,日誌名稱,偏移量編號,設置拉取同步操做
mysql -u root -p123 slave stop;
change master to master_host='192.168.117.137',master_user='backli2',master_password='123',master_log_file='mysql-bin.000007',master_log_pos=107; slave start;
show slave status\G; 看到雙yes即爲拉取同步成功
【雙主數據庫最後的驗證:】 在136數據庫上驗證: mysql -u root -p123 use lidb; create table test(id int auto_increment primary key,name char(16));
insert into test(name) values ('test1'); insert into test(name) values ('test2'); insert into test(name) values ('test3');
在137上: insert into test(name) values ('test4'); insert into test(name) values ('test5'); |