CentOS 7下的 Mysql 主从配置

最近在玩mysql主从配置,在此记录一下

一、前言

  1、安装两个虚拟机(CentOS 7)。iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为主数据库,192.168.47.131作为从数据库

  2、在线安装Mysql数据库。具体安装方法请参考:http://www.cnblogs.com/jerrylz/p/5645224.html

  3、在主从数据库中创建 testdb 数据库。(作为同步的数据库)

二、具体步骤

  1、主数据库(master)配置

    (1)在Master MySQL上创建一个用户‘test’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

mysql>create user test; //创建新用户
//test用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.47.%,这个配置是指明test用户所在服务器,这里%是通配符,表示192.168.47.0-192.168.47.255的Server都可以以test用户登陆主服务器。当然你也可以指定固定Ip。
mysql> GRANT REPLICATION SLAVE ON *.* TO 'test'@'192.168.47.%' IDENTIFIED BY 'mysql';

    (2)修改Master MySQL的配置文件 my.cnf

[root@bogon local]# vim /etc/my.cnf
//在my.cnf 的 [mysqld]添加以下内容
server_id =1
log-bin=mysql-bin
binlog-do-db=testdb #允许复制的数据库名称,一行代表一个数据库
binlog-ignore-db=mysql #不复制的数据库

    (3)重启数据库,查看。

[root@bogon local]# service mysqld restart

//进入数据库
show master status;

    结果如下:

+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 699 | testdb | mysql | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

  看到file和position,记录下来,后面需要用到。分别是 mysql-bin.000001和

  2、从数据库(slave)配置

    (1)修改MySQL的配置文件 my.cnf

[root@bogon local]# vim /etc/my.cnf
//在my.cnf 的 [mysqld]添加以下内容
server_id=2
log-bin=mysql-bin
replicate-do-db=testdb
replicate-ignore-db=mysql

    (2)重启数据库 命令:service mysqld restart。登录数据库。

mysql> stop slave;  #关闭slave同步进程
mysql> change master to master_host='192.168.47.133',master_user='test',master_password='mysql',master_log_file='mysql-bin.000001',master_log_pos=699;
mysql> start slave; #启动slave同步
mysql> show slave status; #查看状态

   注意:slave_io_running:yes 和slave_sql_running:yes 说明能正常同步了。

  3、测试。

    (1)在主服务器中 testdb 创建 t_user 表,并插入一条数据。

CREATE TABLE t_user(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(50),
age INT
) INSERT INTO t_user (NAME,age) VALUES ('test',21);

    (2)在从服务器中的 testdb 查看是否存在 t_user 表,并且是否有相应的数据。

SELECT * FROM t_user;

    从数据库中存在 t_user 表 ,并且有相应的数据。说明mysql主从配置已经成功了。

上一篇:【ZOJ】3640 Help Me Escape


下一篇:LDA算法入门