Centos 6.8 配置mysql数据库主从同步

Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务,首先确保主从服务器上的Mysql版本相同。

一、安装部署mysql

1、 安装服务器端:yum install mysql-server

         yum install mysql-devel

  安装客户端:  yum install mysql

2、 启动服务:  service mysqld start

二、设置密码

/usr/bin/mysql_secure_installation

三、开启MySQL远程登录

登录数据库:mysql -u root -p123456    #root账号 #123456数据库密码

切换到mysql系统数据库:use mysql;
修改user表用户权限:update user
set host='%' where host='127.0.0.1';

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

flush privileges;
重载系统权限:flush privileges; #这个一定要执行
开启3306远程端口权限:iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
  
查看规则是否生效:iptables -L -n 或者 :service iptables status

重启mysql服务:service mysqld restart

二、配置mysql主从同步

  准备两台测试的虚拟机,如上安装mysql环境,并开启mysql服务

  主master : 192.168.2.46

  从slave  :   192.168.227.129

  修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效:vim /etc/my.cnf ,在该配置文件[mysqld]下面添加下面内容:

[mysqld]
log-bin=/var/lib/mysql/binlog
server-id=1
binlog-do-db = cmdb #cmdb要同步的数据库名
binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
...... 

  server-id:master端的ID号;

  log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的;

  修改配置文件后,重启服务:service mysqld restart

  查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复

mysql> show master status;
+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000001 |     106 | cmdb         |                  |
+---------------+----------+--------------+------------------+
row in set (0.00 sec)

创建需要同步的数据库:create database cmdb default charset utf8;

  主服务器已配置好。

2、配置从库

  理所当然也是从配置文件着手,在/etc/my.cnf 添加下面配置:

[mysqld]
server-id=2
master-host=192.168.2.46
master-user=root
master-password=123456
master-port=3306
replicate-do-db=cmdb
......

  启动slave进程

mysql> slave start;
Query OK, 0 rows affected (0.04 sec)

Centos 7:
mysql>start  slave ; 
Query OK, 0 rows affected (0.04 sec)

  查看slave的状态,如果下面两项值为YES,则表示配置正确:show slave statusG:

 

change master to master_host='172.24.254.104', master_user='dshbroot', master_password='Dszc@20190923',master_log_file='binlog.000002', master_log_pos=3355;

 grant replication slave on *.* to 'dshbroot'@'localhost' identified by 'Dszc@20190923';
原文地址:https://www.cnblogs.com/aqicheng/p/10214908.html