准备两台机器,每台电脑上都要有mysql
然后就开始搭建Replication环境吧
在主服务器上,执行如下操作:
主服务器IP:192.168.170.136
从服务器IP:192.168.170.138
1,在主服务器上创建一个备份用户(*.*就是备份所有用户下的所有表)
mysql> GRANT REPLICATION SLAVE,reload,super ON *.* TO slave@192.168.170.138 IDENTIFIED BY 'unixhot';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
2,在主服务器上修改配置文件
[root@localhost sw]# vim /etc/my.cnf
server-id=1
log-bin=mysql-binlog
expire_logs_day=10
max_binlog_size=500M
server-id --->为服务器编号,主为1
log-bin --->日志文件
expire_logs_day ---->设置日志的保存时间
max_binlog_size --->设置每个日志的大小
3,重新启动服务器
/etc/init.d/mysqld restart
4,登录主数据库
[root@localhost sw]# mysql -uroot -p123456
mysql> show master status;
+---------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| mysql-binlog.000001 | 98 | | |
+---------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql-binlog.000001:日志名称
98:日志的当前位置
然后切换到从服务器:
做如下操作
1,修改配置文件
root@localhost ~]# vim /etc/my.cnf
server-id=2
slave-skip-errors=all
relay-log=mysql-relay-bin
server-id:当前数据库的编号,从2开始
server-skip-errors:跳过所有错误的sql
relay-log:从端读取主端的日志信息
2,登录从数据库
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.170.136',
-> MASTER_USER='slave',
-> MASTER_PASSWORD='unixhot',
-> MASTER_LOG_FILE='mysql-binlog.000001',
-> MASTER_LOG_POS=98;
master_host:主数据库的IP
master_user:主数据库中创建的用户
master_password:该用户的密码
master_log_file:从那个日志文件开始读取
master_log_pos:从那个位置开始读取
3,启动该slave
mysql> start SLAVE
-> ;
Query OK, 0 rows affected (0.00 sec)
OK,去主数据库中添加一个表试试吧,看看在从数据库中有没有这个表