本帖最后由 传说中的草包 于 2017-4-12 09:12 编辑
为什么要用mysql主从复制? 这个问题不需要回答吧,,,,,想想,一个人干活快呢,还是一万个能性格功力一样的人干活快呢. 不用解释大家都懂. 那咱们就开始吧.
先来张图
看到了吧. 一台主的. n个从的. 一主多从,而不能一从多主.注意了哈. 那咱们就以 1从1主为例. 下面先配主机
1.主机配置,,, 主机ip地址是 103.212.32.135 进入服务器.编辑一下mysql的config信息. 比如
[Shell] 纯文本查看 复制代码
1
vi /usr/local/mysql/my.cnf
然后修改以下几个地址
找到[mysqld]节点 修改或是添加
[SQL] 纯文本查看 复制代码
1
2
3
4
5
6
#log-bin是指开启二进制操作日志
log-bin=mysql-log
#serverid是指他的唯一id,可以理解为IP.所以说以ip的最后三位为id比较合适
server-id=123
#需要同步的库. 不写同步所有
binlog-do-db = 需要同步的数据库,多个用逗号隔开
重启mysql.
2.添加一个同步用的用户,注意,最好别用root
[SQL] 纯文本查看 复制代码
1
GRANT REPLICATION SLAVEON *.*to '用户'@'%' identifiedby '密码';
这里的%是指所有主机都可以联
重启.到此为止.服务器的配置完成.太尼玛简单了是吧. 没事习惯就好了. 没毛病. 从3开始就是客户端配置了.
3. 打开从机,比如本地的,也是接第1步的操作个性my.cnf的这两个属性,注意id别重复.
4.回到服务器,执行一下这条sql
[SQL] 纯文本查看 复制代码
1
show master status
看到以下代码说明正常.
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 308 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
5.重启后,执行以下代码
[SQL] 纯文本查看 复制代码
1
2
3
4
5
6
change masterto master_host='103.212.32.135',
master_user='用户',
master_password='密码',
master_log_file='[color=Blue]mysql-bin.000001[/color]',
master_log_pos=[color=Red]308[/color];
start slave;
6.等待几秒后从机执行
[SQL] 纯文本查看 复制代码
1
show slave status\G
Slave_IO_State: Waiting for master to send event
Master_Host 主服务器地址
Master_User 授权帐户名
.........
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
.......
到此说明正常.