Mysql資料庫單向同步(一主兩從)
一、mysql的主從同步配置
要求,mysql主從資料庫,一主兩從,其中:
119.161.145.209是主資料庫,119.161.145.215是從資料庫1,119.161.145.216是從資料庫2
mysql伺服器IP地址規劃
|
主資料庫-ERP |
從資料庫一(shop1) |
從資料庫二(shop2) |
公網IP(eth0) 掩碼 閘道器 私網IP(eth1) |
119.161.145.209 255.255.255.224 119.161.145.193 192.168.10.204 |
119.161.145.215 255.255.255.224 119.161.145.193 192.168.10.206 |
119.161.145.216 255.255.255.224 119.161.145.193 192.168.10.202 |
|
二、Mysql安裝資訊
my.cnf位置:/data0/mysql/3306/my3306.cnf
定義
socket = /data0/mysql/3306/mysql3306.sock
basedir = /usr/local/webserver/mysql
datadir = /data0/mysql/3306/data
log-error = /data0/mysql/3306/mysql_error.log
include = /usr/local/webserver/mysql/include/mysql
libs = /usr/local/webserver/mysql/lib/mysql
連線本地mysql
mysql -uroot -p123456 -S /data0/mysql/3306/mysql3306.sock
連線遠端
mysql -ureplication -prepmysql -h 192.168.10.204
手工啟動mysql
/usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/3306/my3306.cnf 2>&1 > /dev/null &
手工關閉mysql
/usr/local/webserver/mysql/bin/mysqladmin -u root -p123456 -S /data0/mysql/3306/mysql3306.sock shutdown
指令碼啟動與關閉mysql
/data0/sh/mysqlservie.sh {start;stop;restart}
以root賬號連線到本地ERP資料庫
mysql -uroot -p -S /data0/mysql/3306/mysql3306.sock
遠端連線到ERP資料庫,賬號與密碼replication:repmysql
mysql -ureplication -prepmysql -h 192.168.10.204
檢視ERP伺服器 mysql資料庫裡的使用者名稱
show databases;
use mysql;
三、在ERP上建立商城資料庫的賬號(主資料庫)
1、建立一個replication賬號,密碼repmysql,只有192.168.10.202可以訪問,此賬號為資料庫同步賬號
grant replication slave on *.* to 'replication'@'192.168.10.202' identified by 'repmysql' with grant option;
grant file on *.* to replication@'192.168.10.202' identified by 'repmysql';
grant all privileges on backup.* to replication@'192.168.10.202' identified by 'repmysql';
同理建立206與210的replication賬號
grant replication slave on *.* to 'replication'@'192.168.10.206' identified by 'repmysql' with grant option;
grant file on *.* to replication@'192.168.10.206' identified by 'repmysql';
grant all privileges on backup.* to replication@'192.168.10.206' identified by 'repmysql';
grant replication slave on *.* to 'replication'@'192.168.10.210' identified by 'repmysql' with grant option;
grant file on *.* to replication@'192.168.10.210' identified by 'repmysql';
grant all privileges on backup.* to replication@'192.168.10.210' identified by 'repmysql';
flush privileges;
2、順便建立網站的讀寫分離賬號:oucampdb_write與oucampdb_read
A:建立oucampdb_write賬號,密碼123456,192.168.10網段都可以登入。此賬號為商城讀寫分離資料庫的主庫寫賬號
INSERT INTO user (Host,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv) VALUES ('192.168.10.%','oucampdb_write',PASSWORD('123456'),'Y','Y','Y','Y');
B:建立oucampdb_read賬號,密碼123456,192.168.10網段都可以登入。此賬號為商城讀寫分離資料庫的主庫讀賬號
INSERT INTO user (Host,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv) VALUES ('192.168.10.%','oucampdb_read',PASSWORD('123456'),'Y','Y','Y','Y');
flush privileges;
重新整理
flush privileges;
select * from mysql.user;
root |
localhost |
replication |
192.168.10.202 |
oucampdb_read |
%
127.0.0.1 |
oucampdb_ write |
192.168.10.% |
nagios |
192.168.10.210 |
命令備註
修資料庫賬號,改使用者名稱oucampdb_write為oucampdb_read
update user set User='oucampdb_read' where Host='192.168.10.%';
四、修改主與從資料庫的my.cnf
在ERP的mysql的配置檔案/data0/mysql/3306/my3306.cnf中的[mysqld]中增加
log-bin
server-id
在shop1的mysql的配置檔案/data0/mysql/3306/my3306.cnf中的[mysqld]中增加
log-bin
server-id
binlog-do-db
binlog-ignore-db
master-host
master-user
master-password
master-port
replicate-do-db
replicate-ignore-db
master-connect-retry = 10
slave-skip-errors
在shop2的mysql的配置檔案/data0/mysql/3306/my3306.cnf中的[mysqld]中增加
log-bin
server-id
binlog-do-db
binlog-ignore-db
master-host
master-user
master-password
master-port
replicate-do-db
replicate-ignore-db
master-connect-retry = 10
slave-skip-errors
五、mysql的同步配置
1、主庫鎖庫,獲取MASTER_LOG_FILE與MASTER_LOG_POS的值,並且匯出資料庫的備份
a:主庫鎖庫
flush tables with read lock;
b:使用命令show
master status檢視主庫的MASTER_LOG_FILE與MASTER_LOG_POS的值,手工做從庫同步主庫在除錯,需要這2個引數:
show master status;
c:解鎖(先不要執行這個操作,2個從庫同步之後再解鎖)
unlock tables;
2、在主庫上匯出要備份的資料庫並SCP到從庫1和2
cd /data0/mysql/3306/
/usr/local/webserver/mysql/bin/mysqldump -u root -p -S /data0/mysql/3306/mysql3306.sock oucamp_db > oucamp_db.sql
scp oucamp_db.sql root@192.168.10.206:/data0/mysql/3306/
scp oucamp_db.sql root@192.168.10.202:/data0/mysql/3306/
3、在從庫上匯入備份的oucamp_db.sql,分別在shop1與shop2兩個從庫上操作
cd /data0/mysql/3306/
mysql -uroot -p -S /data0/mysql/3306/mysql3306.sock
輸入資料庫root密碼
刪除oucamp_db資料庫
drop database oucamp_db
建立新的oucamp_db資料庫
create database oucamp_db;
匯入資料庫sql
use oucamp_db;
source oucamp_db.sql;
配置mysql同步,從庫(slave
database)修改完my.cnf後,需要執行的語句,注意MASTER_LOG_FILE與MASTER_LOG_POS的值要在主庫獲取(見上)
slave stop;
CHANGE MASTER TO MASTER_HOST='192.168.10.204',
MASTER_PORT=3306,
MASTER_USER='replication',
MASTER_PASSWORD='repmysql',
MASTER_LOG_FILE='binlog.000054',
MASTER_LOG_POS=2697328;
slave start;
注:執行從庫的CHANGE MASTER命令,主庫必須在鎖表狀態,否則同步出1032錯誤
檢視從庫狀態
show slave status\G;
quit
六、檢視mysql的錯誤日誌,檢測同步狀態是否有錯誤
tail -30 /data0/mysql/3306/mysql_error.log
沒有錯誤的話,主庫可以執行unlock tables解鎖
測試主從資料庫同步,在主庫上建立一個test表,插入一條資料,然後在從庫上看這個表以及這條資料是否存在:
主庫上操作
mysql -uroot -p -S /data0/mysql/3306/mysql3306.sock
use oucamp_db;
create table test(id int,name varchar(20),company varchar(40));
insert into test values(1,'aaa','wwwwwwwww');
select * from oucamp_db.test;
從庫上操作
mysql -uroot -p -S /data0/mysql/3306/mysql3306.sock
use oucamp_db;
select * from oucamp_db.test;
查詢mysql版本號
SHOW VARIABLES LIKE 'version';
查詢mysql服務狀態
ps -ef |grep mysql
相關文章
- MYSQL資料庫主從同步(一主一從)MySql資料庫主從同步
- [資料庫]MYSQL主從同步資料庫MySql主從同步
- 【mysql】mysql的資料庫主從(一主一從)MySql資料庫
- Linux下mysql資料庫一主一從同步配置LinuxMySql資料庫
- MySQL 資料主從同步MySql主從同步
- 解決MySQL的主從資料庫沒有同步的兩種方法MySql資料庫
- mysql伺服器主從資料庫同步配置MySql伺服器資料庫
- CentOS7.1下MySQL資料庫主從同步CentOSMySql資料庫主從同步
- mysql資料庫資料同步/主從複製的配置方法MySql資料庫
- MySQL主從雙向同步複製MySql
- MySQL-主從複製之同步主從資料MySql
- mysql主從資料庫配置MySql資料庫
- Mysql主主同步-配置資料同步MySql
- 搭建 mariadb 資料庫主從同步資料庫主從同步
- linux下mysql主從複製,實現資料庫同步LinuxMySql資料庫
- mysql主庫清理資料,從庫保留MySql
- Linux實現MySql資料庫的主從複製(一主一從)LinuxMySql資料庫
- 8、MySQL主從資料庫配置MySql資料庫
- Mysql資料庫主從心得整理MySql資料庫
- Mysql 資料庫主庫,備庫實時同步配置MySql資料庫
- mysql主從同步MySql主從同步
- MySQL主從資料庫同步延遲問題怎麼解決MySql資料庫
- Window 10 單機配置MYSQL主從同步MySql主從同步
- MySQL主從同步(一主一從、一主多從、主從從)等結構的概述與配置MySql主從同步
- Mysql主從同步實戰(一)【知其然】MySql主從同步
- 一種MySQL主從同步加速方案MySql主從同步
- MySQL主從同步配置MySql主從同步
- MySQL-主從複製之搭建主資料庫MySql資料庫
- 直播帶貨系統原始碼,實現MYSQL資料庫的主從同步原始碼MySql資料庫主從同步
- Mysql(Mariadb)資料庫主從複製MySql資料庫
- MacOS使用Docker建立MySQL主從資料庫MacDockerMySql資料庫
- 使用 Docker 完成 MySQL 資料庫主從配置DockerMySql資料庫
- mysql資料庫實現主從複製MySql資料庫
- MySQL-主從複製之搭建從資料庫MySql資料庫
- MySql主從同步介紹MySql主從同步
- Mysql 主從同步實戰MySql主從同步
- mysql主從同步機制MySql主從同步
- mysql master slave 主從同步MySqlAST主從同步