性能更好的新服务器申请下来了,咱们决定在2台新服务器上使用mysql5.7,而且使用主从同步、读写分离架构,很不幸这个任务落到了个人头上。读写分离是在业务代码中实现的,在此不作详述,介绍一下我搭建MySQL主从的过程。mysql
环境介绍:sql
Master 10.20.66.150服务器
Slave 10.20.66.151架构
端口都是3306socket
一.修改主库的配置 vi /etc/my.cnfide
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid init_connect='SET collation_connection = utf8mb4_unicode_ci' init_connect='SET NAMES utf8mb4' character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake server-id=2 log-bin=log binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=sys
须要注意的点:性能
1.为了兼容emoji等特殊字节符,配置中使用utf8mb4编码测试
2.与主从相关的配置在整个配置的最下边,主库和从库的server-id必须不一样编码
3.binlog-ignore-db设置不须要同步的库spa
二.建立用于主从同步的帐户
1.登陆MySQL mysql -uroot -p
2.create user 'sync'@'%' identified by 'Sync!0000'; (5.7要求密码必须含有大小写英文,符号和数字)
3.grant FILe on *.* to 'sync'@'10.20.66.151' identified by 'Sync!0000'; (赋予FILE权限,容许从从库ip访问主库)
4.grant replication slave on *.* to 'sync'@'10.20.66.151' identified by 'Sync!0000'; (赋予主从同步权限)
5.flush privileges;
6.重启mysql
三.查看主库状态,记录必要信息
1.登陆MySQL
2.show master status; 记录File和Position对应的信息,我这里是log.000006和151
四.修改从库配置
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid init_connect='SET collation_connection = utf8mb4_unicode_ci' init_connect='SET NAMES utf8mb4' character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake server-id=3 log-bin=mysql-bin replicate-ignore-db=mysql replicate-ignore-db=information_schema replicate-ignore-db=performance_schema replicate-ignore-db=sys log-slave-updates slave-skip-errors=all slave-net-timeout=60
注意事项和主库配置相同,使用replicate-ignore-db标记出不须要同步的库
五.配置同步帐号
1.systemctl restart mysql (重启MySQL),而后进入MySQL
2.stop slave;
3.change master to master_host='10.20.66.150', master_user='sync',master_password='Sync!0000',master_file_log='log.000006',master_log_pos='151'; (最关键的一步,将主库ip,同步帐号的用户密码,show master status获得的file、position写入。在5.7以前的版本这一步的相关参数是写到配置文件中的,5.7若是再写进配置文件会报参数错误)
4.start slave;
若是顺利的话,到目前为止主从同步已经搭建完成,在从库中使用show slave status \G;查看同步状态
看到以上结果说明生效了,你们能够在主库上插入数据测试一下主从同步是否生效了~
但愿对你们有所帮助,祝你们天天开心~