当前位置:Gxlcms > 数据库问题 > MySQL主从复制部署

MySQL主从复制部署

时间:2021-07-01 10:21:17 帮助过:8人阅读

-id=1 服务器ID,可1-之间的任意整数 binlog-ignore-db=information_schema 避免同步的数据库 binlog-ignore-db=performance_schema binlog-ignore-db=mysql binlog-do-db=hr 二进制需要同步的数据库名

注意:在配置文件中不可使用skip-networking参数,否则从服务器将无法连接主服务器并进行数据同步

(3)重启服务器

# service mysqld restart

3、为slave用户添加同步专用权限

(1)创建复制账户并赋权

mysql> GRANT FILE ON *.* TO slave_cp@192.168.1.2 IDENTIFIED BY root;

mysql> GRANT REPLICATION SLAVE ON *.* TO slave_cp@192.168.1.2 IDENTIFIED BY root;

mysql> FLUSH PRIVILEGES;

(2)添加管理用户

grant all privileges on *.* to admin@% identified by root;

(3)刷新权限

flush privileges; 

四、从服务器设置

1、设置my.cnf参数

(1)备份配置文件

# cp /usr/local/mysql/my.cnf /etc/my.cnf

(2)修改参数信息

必要参数如下:

log-bin=mysql-bin

server-id=2                       #从服务器ID

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

binlog-ignore-db=mysql

replicate-do-db=hr                 #同步的数据库名

replicate-ignore-db=mysql        #屏蔽不同步的数据库

log-slave-updates

slave-skip-errors=all

slave-net-timeout=60

注:MySQL 5.6之后没有master-user等参数,否则重启报错

(3)重启服务器

# service mysqld restart

五、数据库备份、同步

1、对数据库进行备份

[root@master mysql]# /usr/local/mysql/bin/mysqldump -h localhost -uroot -proot --all-databases --lock-all-tables >/tmp/dbdump.sql
[root@master mysql]# scp /tmp/dbdump.sql root@slave:/tmp/
[root@slave ~]# mysql -u root -p < /tmp/dbdump.sql

注:从服务器不需要创建要同步的数据库,备份脚本会自动创建。

2、配置从服务器连接主服务器同步

(1)、获取主服务器二进制日志信息

[root@master mysql]# mysql -uroot -p

Enter password:
mysql> flush tables with read lock;        --只读锁定
mysql> show master status;
mysql> unlock tables;                       --解除锁定

(2)设置从服务器同步

[root@slave ~]# mysql -u root –p

mysql> stop slaves;

mysql> change master to
    -> master_host=192.168.152.129,
    -> master_user=slave_cp,
    -> master_password=root,
    -> master_log_file=mysql-bin.000003,
    -> master_log_pos=195;                 --这里的参数取值参考查询到的master日志信息

mysql> start slave;
mysql> show slave status \G

3、同步验证

在master上添加数据,查看slave端的同步情况。

master节点:

[root@master ~]# mysql -uroot -p
mysql> create database test;
mysql> use test;
mysql> create table users(id int primary key,name char(20));
mysql> insert into users(id,name)values(1,aa);
mysql> use hr;
mysql> show tables;
mysql> create table bb(id int,name char(20));
mysql> insert into emp(id,name)values(2,bb);

 slave节点:

[root@slave ~]# mysql -uroot -p
mysql> select * from test.users;

错误

1、启动从服务器失败

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

解决:

mysql> reset slave;

mysql> change master to master_host=192.168.152.129,
master_user=slave_cp,master_password=root,master_log_file=mysql-bin.000005,
master_log_pos=610;
mysql> start slave;

参考:https://zhangge.net/5091.html

参考:http://blog.csdn.net/xlgen157387/article/details/51331244/

 

MySQL主从复制部署

标签:主机   其他   mysql主从   mysqldump   参数取值   使用   日志功能   注意   nlog   

人气教程排行