mysql主从搭建--简易版

当前我有一个mysql实例3306

[root@lzl ~]# service mysqld status
MySQL running (1782)                                       [  OK  ]

[root@lzl ~]# ps -ef|grep mysql
root      1603     1  0 Jul22 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/lzl.pid
mysql     1782  1603  0 Jul22 ?        00:00:46 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql.log --pid-file=/data/mysql/lzl.pid --socket=/tmp/mysql.sock --port=3306

我要搭一个mysql主从,需要安装备库,参数配置,备库数据初始化,开启主从同步

1.安装备库

1.1配置cnf

cnf配置:直接从主配置拷贝更改一些配置


主:/etc/my.cnf
[mysqld]
datadir = /data/mysql
socket = /tmp/mysql.sock
character_set_server = utf8
default-time-zone = '+08:00'
port = 3306

log-bin=master-bin
log-bin-index=master-bin.index
server-id=01

[mysqld_safe]
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysqld.pid

备:/etc/my3308.cnf
[mysqld]
basedir=/usr/local/mysql
datadir = /data/mysql3308
socket = /tmp/mysql3308sock
character_set_server = utf8
default-time-zone = '+08:00'
port = 3308
user=mysql

server-id=02
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

[mysqld_safe]
log-error=/data/mysql3308/mysql.log
pid-file=/data/mysql3308/mysqld.pid
basedir=/usr/local/mysql
user=mysql

1.2创建备库cnf配置中的目录

mkdir /data/mysql3308
chown mysql:mysql /data/mysql3308


1.3初始化

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3308.cnf  --initialize 


1.4启动备库

mysqld_safe --defaults-file=/etc/my3308.cnf &

2 主备参数配置

2.1 配置master参数


[mysqld]
log-bin=master-bin
log-bin-index=master-bin.index
server-id=1001

重启3306 mysqld

2.2 配置slave参数


[mysqld]
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
server-id=1002

重启3308 mysqld

(可以用show variables like '%bin%'和show variables like '%server%'查看主从参数是否生效)

2.3 master创建用户


create user replicator@'%' identified by 'oracle';
grant select,replication slave,super,reload,replication client on *.* to replicator ;
flush privileges;

3 数据初始化

3.1 lock tables


登陆master库lock tables,禁止在导出阶段变更数据,保障数据一致性
mysql> flush tables with read lock;  --窗口断开锁会释放

3.2 记录复制开始的位置

记录master的binlog文件和位置

show master status\G
*************************** 1. row ***************************
             File: master-bin.000002
         Position: 154
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

3.3 逻辑导出

mysqldump -A -h127.0.0.1 -P3306 -uroot -poracle>/tmp/source.sql

3.4 解锁表


unlock tables;  --导出完成后就不必锁表了

4 slave搭建

4.1 备库导入初始化数据


mysql -h127.0.0.1 -P3308 -uroot -poracle</tmp/source.sql

4.2 change master

change master to
master_host='127.0.0.1',
master_port=3306,
master_user='replicator',
master_password='oracle',
master_log_file='master-bin.000002',
master_log_pos=154;

4.3 开启slave

start slave; 

5 校验同步

备库登陆

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 127.0.0.1
                  Master_User: replicator
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000002
          Read_Master_Log_Pos: 154
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 321
        Relay_Master_Log_File: master-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

猜你喜欢

转载自blog.csdn.net/qq_40687433/article/details/107822180
今日推荐