环境
- 服务器环境
Ubuntu Server 14.04
数据库
master数据库
- 用户名:root
- 密码: aaaaaa
slave数据库
- 用户名:root
- 密码:aaaaaa
IP
master服务器:192.168.5.128
slave服务器:192.168.5.129
配置
Ubuntu的MySql配置文件一般位于/etc/mysql/my.cnf
主从数据库的配置可以参考下面
主数据库
- server-id=1 #这里的server-id与从数据库的server-id不能相同
- log_bin=/var/log/mysql/mysql-bin.log #日志文件,通过二进制日志文件同步
- bin_log_do_db=test #要备份的数据库,这里数据库最好是没有建成的数据库,至于已经建成的要如何配置还没有测试过,后期改进
- 为了使从数据库有权利可以从主数据库备份的功能,需要在主数据库中授权grant replication slave on . to ‘root’@’192.168.5.129’ identified by ‘aaaaaa’;这里授权我自己是授予所有的权限的
- 重启数据库
- mysql>show master status;查看数据库的状态
+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | test | |
+--------------------+----------+--------------+------------------+
记住File和Position的值,在配置从数据库的时候回使用到MySQL是通过二进制的日志文件来进行主从数据库复制的,所以必须开启日志功能,即上述的log-bin;另外在集群中,每台数据库服务器都需要指定一个唯一ID,这里我们指定为1
从数据库
- mysql>slave stop #停止slave
- 配置主数据库
mysql> change master to
-> master_host='192.168.5.128',
-> master_user='root',
-> master_password='aaaaaa',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=107;
指定主数据库的host、user、password、通过二进制备份的日子文件、备份的其实位置107。如对配置有点疑惑tail一下/var/log/mysql/mysql-bin.000001这个文件,当然不一定是这个名字,参考之前在主数据库执行show master status;指令的File和Position- mysql> slave start #启动slave
- mysql> show slave status\G; #查看状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
说明已经成功启动了主从数据库的数据同步。
至此基本配置完成,如有什么问题Google一下即可,至于要翻墙可以百度一下google hosts 老D的博客