Quantcast
Channel: PayMoon贝明实验室
Viewing all articles
Browse latest Browse all 130

MySQL 主从复制 搭建及配置的坑

$
0
0
这不是配置的教程,而是配置过程中的坑解决。我在配置过程中,很多MySQL的使用,最用到才知道是坑。有的好解决,有的需要想一些办法

简明教程

1 centos 6.5 下载mysql 5.7,并在3个节点安装DB(安装或升级过程中的my.cnf配置>) mysqld: unknown variable ‘default-character-set=utf8’ – PayMoon贝明实验室 http://www.paymoon.com:8001/index.php/2016/06/03/mysqld-unknown-variable-default-character-setutf8/ 2 更改密码及远程访问授权(1 安全模式 2 5.7改密码新命令 3 host>%) 更改DB mysql 密码万能法 http://www.paymoon.com:8001/index.php/2016/04/11/update-db-mysql-password/ 3 开始主从复制,配置主的my.cnf [crayon-5763ec4796a2a778422120/] http://valleylord.github.io/post/201601-mycat-readwrite/ 然后重启主Mysql,并登陆,运行以下命令,
1
2
3
4
5
6
7
8
9
10
mysql> GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by '111111';
Query OK, 0 rows affected, 1 warning (0.05 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000007 | 429 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
4 配置从的my.cnf及命令行操作 [crayon-5763ec4796a35251481718/] 注意,server-id一定不能与主Mysql相同,这是表示服务器的唯一id。然后重启从Mysql,登陆,运行如下命令,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mysql> change master to master_host='master-1',master_port=3306,master_user='root',master_password='111111',master_log_file='mysql-bin.000007',master_log_pos=429;
Query OK, 0 rows affected, 2 warnings (0.44 sec)
mysql> start slave;
Query OK, 0 rows affected (0.02 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master-1
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 429
Relay_Log_File: 1d508b1aa846-relay-bin.000002
Relay_Log_Pos: 595
......
注意,以上命令中的master_log_file='mysql-bin.000007',master_log_pos=429要与主Mysql中的show master status结果一致。另外,如果配置change master的时候配置错了,需要先运行stop slave停止slave,再运行reset slave清空slave的配置,然后再从头开始配置。

坑说明

1 版本的选择。最好选5.7的,因为5.7有gtid,性能比5.6快三倍。当然最低5.6,如果不幸还在用5.1的,那么有一些参数的更改,必须要重启。望周知~ 2 5.7密码问题 5.7 中增强了密码的校验,这涉及到密码的更改,权限分配中等所有使用到密码的情况。 比如在主从设置中 [crayon-5763ec4796a41410433869/] 就会报密码不安全。 解决办法两个: AAA: 更改密码长度,不适合 at least 8 characters long update mysql.user set authentication_string=password('testtesttesttest') where user='root' BBB: (推荐)更改校验为Low,长度为1 [crayon-5763ec4796a49165918549/] Change MySQL password policy level - Qiita http://qiita.com/liubin/items/3722ab10a73154863bd4 3 不会被复制的语句 有些语句不会被复制,注意程序里面不要用这些sql 原理是表任务级别的操作,DB的不会 mysql主从复制原理介绍2 - fighting-cluber的个人页面 - 开源中国社区 http://my.oschina.net/zijian1315/blog/202599 Mysql数据库主从心得整理 - 王伟 - 51CTO技术博客 http://wangwei007.blog.51cto.com/68019/965575 4 mysql主从复制遇到错误就停止复制的解决办法》跳过错误配置 mysql主从复制跳过错误 - seteor的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/seteor/article/details/17264633

Viewing all articles
Browse latest Browse all 130

Trending Articles