教程所用环境:centos7 + mysql5.5.57
一、起步准备
主库服务器:192.168.43.200
从库服务器:192.168.43.201
均安装mysql5.5.57 //这里最好安装同一版本的数据库
二、配置主库服务器(192.168.43.200):
1、打开/etc/my.cnf配置文件,进行如下配置
log-bin=/mysqllog/no1 #这里可以使用默认,或者是自己指定目录与文件名,但前提是需要手动创建并给予所有权限 binlog_format=mixed #默认即可,如果有其它需要自行在网上搜索 server-id = 1 #这里的server-id必须与其它从或者主服务器是不相同的
2、登录mysql,创建mysql用户(或者使用已经存在的也行),并且给予只能进行主从同步
/*新建用户,使用已有用户的略过进行下面的*/ /*设置的主机只允许192.168.43.201进行连接访问*/ mysql> create user 'sindsun'@'192.168.43.201' identified by '123456'; /*指定账号的指定权限/用途*/ mysql> grant replication slave on *.* to 'sindsun'@‘192.168.43.201’ identified by ‘123456’; /*此处可能会出现无法正常进行的错误,运行一下下面的语句或者在重启mysql器后再运行下面的命令*/ mysql> flush privileges;
二、数据导入与导出
flush tables with read lock;
将主要要同步到从库的数据库导出(注意这里一定要将主库锁定停止操作),然后将导入的数据库导入到从库中去(注意主从表名一致),如果在这里导入数据的状态不一致或者有表的主键自增不一致,则会导致无法同步,这里操作从简单,但要谨慎操作。
三、配置从库服务器(192.168.43.201):
1、打开/etc/my.cnf配置文件,进行如下配置
#主从复制的表,db是你要同步的数据库名称 replicate-do-db=db replicate-ignore-db=mysql replicate-ignore-db=information_schema replicate-ignore-db=performance_schema replicate-ignore-table=db.oauth_access_tokens replicate-ignore-table=db.oauth_sessions replicate-ignore-table=db.oauth_refresh_tokens #replicate_wild_ignore_table = mysql.% #replicate_wild_ignore_table = information_schema.% #replicate_wild_ignore_table = performance_schema.% default_authentication_plugin = mysql_native_password #sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION #skip-grant-tables #skip-log-bin sql_mode='' #这里可以使用默认,或者是自己指定目录与文件名,但前提是需要手动创建并给予所有权限,从服务器可以不配置 log-bin=mysql-bin binlog-format=mixed #这里的server-id必须与其它从或者主服务器是不相同的 server-id=11 log-slave-updates #slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误 #slave-skip-errors=all #跳过所有错误
2、登录mysql,配置同步参数
mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.43.200', #主库服务器地址 -> MASTER_USER='sindsun', #前面我们在主库添加的专用账号 -> MASTER_PASSWORD='123456', #密码 -> MASTER_LOG_FILE='no1.000001', #主库日志文件,如何获取在下面将会说明 -> MASTER_LOG_POS=107 #主服务器状态,如何获取在下面将会说明
MASTER_LOG_FILE的值是从主库服务器查询的,在我们设置的日志目录中,一定要选择最新的,最好是在执行第二步的时候记录下来,具体如图:
MASTER_LOG_POS的值也是从主库服务器查询的,最好是在执行第二步的时候记录下来,具体如图:
3、启动同步进程
mysql> start slave;
4、检查同步状态,标出的两个全为YES表示成功
mysql> show slave status \G;
四、测试
只要按上边的步骤全部走通了,这里向主库写数据,那么从库一定会同步过来的。
PS:
清除主从同步参数
reset slave all;
锁表
LOCK TABLES table_name [READ | WRITE]
解锁
UNLOCK tables;
版权声明:
此文为本站源创文章[或由本站编辑从网络整理改编],
转载请备注出处:
[狂码一生]
https://www.sindsun.com/articles/21/94
[若此文确切存在侵权,请联系本站管理员进行删除!]
--THE END--