Mysql主从同步配置方法

Mysql主从同步配置方法

一、主从全新配置

1.主库配置
(1) 重置主库
mysql> reset master;

(2) 配置my.cnf
[mysqld]
server_id=1
log_bin=mysql-bin

(3) 创建用户
mysql> create user repl@'192.168.1.%' identified by 123;
mysql> grant replication slave on *.* to rep1@'192.168.1.%';

(4) 重启数据库
[root@server01 ~]# mysqladmin -uroot -p shutdown
[root@server01 ~]# mysqld_safe --user=mysql &

(5) 获取主库二进制位置
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
2.从库配置
(1) 重置从库
mysql> reset master;

(2) 配置my.cnf
[mysqld]
server_id=2

(3) 重启数据库
[root@server02 ~]# mysqladmin -uroot -p shutdown
[root@server02 ~]# mysqld_safe --user=mysql &

(4) 配置主库信息
mysql> CHANGE MASTER TO
  MASTER_HOST='192.168.1.191',
  MASTER_USER='repl',
  MASTER_PASSWORD='123',
  MASTER_PORT=3307,
  MASTER_LOG_FILE='mysql-bin.000002',
  MASTER_LOG_POS=154,
  MASTER_CONNECT_RETRY=10;

(5) 开启从库复制进程
mysql> start slave;

二、主库已有数据配置

1.主库配置
(1) 配置my.cnf
[mysqld]
server_id=1
log_bin=mysql-bin

(2) 创建用户
mysql> create user repl@'192.168.1.%' identified by 123;
mysql> grant replication slave on *.* to rep1@'192.168.1.%';

(3) 重启数据库
[root@server01 ~]# mysqladmin -uroot -p shutdown
[root@server01 ~]# mysqld_safe --user=mysql &

(4) 导出数据
[root@server01 ~]# mysqldump -uroot -p123456 -A -R -E --triggers --master-data=2 --single-transaction > /tmp/full.sql

(5) 获取主库二进制位置
[root@server01 ~]# more /tmp/full.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=194;
2.从库配置
(1) 配置my.cnf
[mysqld]
server_id=2

(3) 重启数据库
[root@server02 ~]# mysqladmin -uroot -p shutdown
[root@server02 ~]# mysqld_safe --user=mysql &

(3) 导入数据
[root@server02 ~]# scp 192.168.1.191:/tmp/full.sql /tmp
mysql> source /tmp/full.sql

(4) 配置主库信息
mysql> CHANGE MASTER TO
  MASTER_HOST='192.168.1.191',
  MASTER_USER='repl',
  MASTER_PASSWORD='123',
  MASTER_PORT=3307,
  MASTER_LOG_FILE='mysql-bin.000002',
  MASTER_LOG_POS=194,
  MASTER_CONNECT_RETRY=10;

(5) 开启从库复制进程
mysql> start slave;

三、重新配置从库步骤

在遇到故障后,需要重新配置从库才能恢复,则使用如下步骤

1.从库操作
(1) 停止slave进程
mysql> stop slave
或者使用--skip-slave-start参数重启数据库:
[root@server02 ~]# mysqladmin -uroot -p shutdown
[root@server02 ~]# mysqld_safe --user=mysql --skip-slave-start &

(2) 重置从库
如果主库执行了reset master,从库如果开启了二进制,则从库需要执行reset master:
mysql> reset master
2.主库操作
(1) 主库备份
[root@server01 ~]# mysqldump -uroot -p123456 -A -R -E --triggers --master-data=2 --single-transaction > /tmp/full.sql

(2) 获取主库二进制位置
[root@server01 ~]# more /tmp/full.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=194;
3.从库操作
(1) 导入备份
[root@server02 ~]# scp 192.168.1.191:/tmp/full.sql /tmp
mysql> source /tmp/full.sql

(2) 配置主库信息
mysql> CHANGE MASTER TO
  MASTER_HOST='192.168.1.191',
  MASTER_USER='repl',
  MASTER_PASSWORD='123',
  MASTER_PORT=3307,
  MASTER_LOG_FILE='mysql-bin.000005',
  MASTER_LOG_POS=194,
  MASTER_CONNECT_RETRY=10;

mysql> start slave;

(3) 开启从库复制进程
mysql> start slave;
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇