天天看点

MySQL主从复制的安装配置

在安装配置MySQL主从复制前,主从服务器的安装请查看《MySQL5.5源码包安装 for Red Hat Enterprise Linux 6》这篇文章。

1、主从服务器的信息如下

主从 IP地址 主机名称
master 192.168.0.10 leon
slave 192.168.0.11 leonslave

2、master服务器创建[email protected]账号用于slave服务器连接

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.11' IDENTIFIED BY  'abc123';

3、在master服务器的/etc/my.cnf的[mysqld]部分添加如下参数

log_bin=mysql-bin

server_id=10

重启mysql服务,使配置生效

[[email protected] /]# service mysql restart

4、在slave服务器的/etc/my.cnf的[mysqld]部分添加如下参数

log_bin = mysql-bin

server_id = 11

重启mysql服务,使配置生效

[[email protected] /]# service mysql restart

5、生成master服务器的数据文件快照

会话一:确保数据库没有操作,以便获得一致性的快照

mysql> flush tables with read lock;

会话二:记下显示结果中的日志文件及偏移位置。

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000009 |      107 |              |                  |

+------------------+----------+--------------+------------------+

会话三:打包data目录的文件

[[email protected] mysql5548]# tar -cvf data.tar data

会话一:结束锁表操作

mysql> unlock tables;

6、将master服务器的一致性备份恢复到slave服务器

停止mysql服务,删除data目录,并将master的data.tar解压在这个位置

[[email protected] mysql5548]# service mysql stop

[[email protected] mysql5548]# rm -rf data

[[email protected] mysql5548]# tar -xvf data.tar

7、在slave服务器使用--skip-slave-start 选项启动slave数据库,这样不会立即启动slave数

据库服务上的复制进程,方便我们对从数据库的服务进行进一步的配置

[[email protected] mysql5548]$ ./bin/mysqld_safe --skip-slave-start &

对slave数据库服务器做相应设置,指定复制使用的用户,主数据库服务器的IP、端

口以及开始执行复制的日志文件和位置等

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.10',MASTER_USER='repl',MASTER_PASSWORD='leonliao',

MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=107;

启动slave线程

mysql> start slave;

查看slave线程的状态,若Slave_IO_Running和Slave_SQL_Running参数都为YES,表示复制已经运行

mysql> show slave status\G;

8、常见的问题

Slave_IO_Running参数如果是connecting,表示还未连接到master数据库,产生的原因有如下几种:

a、防火墙问题

b、用户的权限问题

c、在slave数据库连接master数据库的IP、用户名、密码、日志、pos等配置不正确