主从复制

第一步:修改mysql实例的server_id和server_uuid

1.修改server_id

[root@zhu ~]# cat /etc/my.cnf
[mysqld]
basedir = /application/mysql 
datadir = /application/mysql/data
socket = /tmp/mysql.sock
log_bin=mysql-bin 
server_id = 11     #这个id必须不一样
port = 3306
log_error = /application/mysql/data/oldboy_mysql.err

[mysql]
socket = /tmp/mysql.sock
prompt = oldboy [\d]>
2.如若server_uuid一样则不修改,若不一样,修改方法如下:
 [root@zhu /application/mysql/data]# cat /application/mysql/data/auto.cnf 
 [auto]
 server-uuid=4723932a-7458-11e9-b7ab-000c2934cf2a    #这个uuid必须不一样
 [root@zhu /application/mysql/data]# uuidgen  #生成uuid 
 5daa05f2-59fe-432f-a2c7-ff4c0166885f  
 #把生成的uuid在 /application/mysql/data/auto.cnf 中替换
 重启mysql

第二步:在master上面创建一个主从复制的账号,这个账号必须有replication权限

mysql>GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by '123456'; 
第三步:在master上锁表,--全局读锁
flush tables with read lock

第四步:在master上查看master binlog状态

oldboy [(none)]>show master status\G;
*************************** 1. row ***************************      
 File: mysql-bin.000002    #这个是binlog日志文件
 Position: 444                #这个binlog位置点
 Binlog_Do_DB: 
 Binlog_Ignore_DB: 
 Executed_Gtid_Set: 
 1 row in set (0.00 sec)

第五步:备份master数据库

 mysqldump -uroot -poldboy123 -A -B |gzip >/tmp/all.sql。gz
 scp到slave的/tmp下

第六步:slave上还原数据库

 gzip -d  /tmp/all.sql.gz
 mysql -uroot -poldboy123 < /tmp/all.sql

第七步:解锁

unlock tables; 

第八步:在slave上执行change master

1.语法说明:
change master to master_host='master ip地址’\
master_user='复制的用户' \
master_password='复制用户的密码' \
master_log_file='主库上binlog文件' \
master_log_pos='主库binlog文件位置';
2. 配置例子:
master_host='172.16.1.199',master_user='replication',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=444;

第九步:启动slave

  start slave;

第十步:查看slave状态

 show slave status\G;       ###主要看以下两行
         Slave_IO_Running: Yes     
         Slave_SQL_Running: Yes

安装完毕,测试主从复制:

oldboy [(none)]>select user,host from mysql.user;    #查看 
数据库及对应的主机
+---------------+------------+
| user          | host       |
+---------------+------------+
| replication   | %          |
| JPress        | 172.16.1.% |
| mysql.session | localhost  |
| mysql.sys     | localhost  |
| root          | localhost  |
+---------------+------------+
5 rows in set (0.00 sec)
 master上创建数据库:
 master    oldboy [(none)]>create database keyan;
 slave     
 slave上检查是否备份成功:
 oldboy [(none)]>show databases;    ###检查是否成功
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容