mysql 主从复制 个人笔记

一、主从备份前准备
0、主从数据库版本
1、主从库结构要完全一致(包括库名,表名,表结构等)所以在做主从配制之前,要同步好两个库的数据
2、主从库配制前要没人使用库的时候,才进行配制,因为数据库在使用过程中,主库数据发生变更,会导致  show master status;
查出的结果每次都不一样,主从关系会建立不起来!!!
3、配制好主从关系(调通后)不能修改从表数据,这样会导致主库与从库不同步,主库数据或结构发生改变的时候,就同步不了从库了!!!

二、主数据库配制操作(ip:192.168.1.179:3307) 这里我不是用的默认端口3306而是自定义的端口
	1、修改mysql服务端配制文件
		1.1 windows 配制文件修改
			1.1.1 安装目录下 my.ini
					server_id = 179【唯一ID】
					log_bin=mysql-bin
					binlog-do-db = test_db【要同步的数据库名】
					log_bin_trust_function_creators=TRUE
			1.1.2 重启mysql服务
					net stop mysql;
					net start mysql;
	    ===========================================================
		1.2 linux 配制文件修改
			1.2.1 目录./ect/my.cnf
					server_id = 179【唯一ID】
					log_bin=mysql-bin
					binlog-do-db = test_db【要同步的数据库名】
					log_bin_trust_function_creators=TRUE
			1.2.2 重启mysql
				systemctl restart mysqld.service
	2、添加一个用户权限
	grant replication slave on *.* to 'bakuser'@'%' identified by '123456'; 
	3、更新权限
	flush privileges;
	4、查询服务器当前状态
	show master status;
	如下所示:
		mysql> show master status;
		+------------------+----------+--------------+------------------+-------------------+
		| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
		+------------------+----------+--------------+------------------+-------------------+
		| mysql-bin.000001 |     5592 | test_db      |                  |                   |
		+------------------+----------+--------------+------------------+-------------------+
		1 row in set (0.00 sec)


三、从数据库配制操作(192.168.1.39)
	1 修改mysql服务端配制文件
	1.1 windows 配制文件修改,增加
		server_id = 39
		1.1.2 重启mysql服务
			net stop mysql;
			net start mysql;
	===========================================	
	1.2	linux 配制文件修改
		1.2.1 目录./ect/my.cnf 增加:
			server_id = 39
		1.2.2 重启mysql
			systemctl restart mysqld.service

	2 添加一个用户权限
		mysql> grant replication slave on *.* to 'bakuser'@'%' identified by '123456'; 

	3 绑定主服务器数据库
		mysql> stop slave;
		mysql> change master to 
				master_host='192.168.1.77', 
				master_port=3307,
				master_user='bakuser',  
				master_password='123456',  
				master_log_file='mysql-bin.000001',  
				master_log_pos=5592;  
		mysql> start slave;
		语句说明:
		参数值 参考上面第二大点,第4小点的查询结果
		    #master_host:主服务器的IP地址 
			#master_port:主服务器的访问端口
		  #master_user:主服务器设置的备份用户
		  #master_password:主服务器备份用户密码
		  #master_log_file:主服务器的日志名称 【查询结果中的 File字段 值】
		  #master_log_pos:主服务器的位置 【查询结果中的 Position字段 值】

	4 查询是否配置成功
	mysql> show slave status\G;
	在查询结果中查找这两个参数都要显示为Yes才表示配制成功
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
    其它任何情况都不成功

    不成功时,肯定是上面没有配制对,或是服务器端口号没开

猜你喜欢

转载自blog.csdn.net/lwbjyl/article/details/84861389
今日推荐