mysql 部署主从数据库

部署环境:

linux Centos 7

mysql8.0.21

服务器两台(一主一从)   192.168.121.10 (主库)、192.168.121.20 (从库)

数据库安装步骤参考上篇链接linux安装mysql详细教程(远程连接)_一朵纯洁的小白花的博客-优快云博客

两台服务器最好安装版本一致

开始部署

1、配置master主服务器的mysql

[root@localhost bin]# vim /etc/my.cnf

1.在[mysqlId]下新添加
server-id=10      //服务器唯一标识
log_bin=master-bin        //启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句
log_bin_index=master-bin.index
binlog_do_db=testdb     //指定记录需要复制的数据库名称,如果复制多个数据库,重复设置这个选项即可

wq保存

2.在主服务器上创建从服务器的用户和权限

进入mysql数据库,命令如下  (mysql8.0之后分为两步)

1.创建一个远程用户
create user 'root8'@'从库ip' identified with 'mysql_native_password' by '密码';
2.赋予远程连接的权限
GRANT REPLICATION SLAVE ON *.* TO 'root8'@'从库ip';
3.刷新权限
FLUSH PRIVILEGES;

查看master信息(下面要用)    show master status;

2、配置slave从服务器的mysql

1.在[mysqlId]下新添加

server-id=20      //服务器唯一标识

relay-log=slave-relay-bin  //启动MySQL二进制日志,可以用来做数据备份和崩溃恢复,或主服务器挂掉了,将此从服务器作为其他从服务器的主服务器。
relay-log-index=slave-relay-bin.index

wq保存

重启service mysql restart

进入mysql命令行

输入命令连接master服务器

mysql> change master to master_host='Master服务器ip',master_port=3306,master_user='用户名',master_password='密码',master_log_file='master_bin.000004',master_log_pos=156;
Query OK, 0 rows affected, 2 warnings (0.09 sec)
 
解释:
 change master to master_host='ip', // 你的Master服务器ip
 master_port=3306, // 端口号
 master_user='user', // 登陆的用户名
 master_password='password' // 设置的密码
 master_log-file='master-bin.000002',  // 之前让你记住的file
 master_log-pos=156  // 之前让你记住的position

启动slave    

mysql> start slave;
Query OK, 0 rows affected (0.02 sec)

查看slave 状态    

mysql> show slave status\G   (后面没有分号)

 只要 Slave_IO_Runging和Slave_SQL_Runing为Yse 就代表连接成功了

可以自己进行测试,主数据库新建个表,看看从数据库是否也有

常见错误之一:

Slave_IO_Running: No

我遇见的是因为数据偏移

解决办法:

先在主库执行:

mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)

mysql> show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000005
         Position: 156
     Binlog_Do_DB:
 Binlog_Ignore_DB: mysql,information_schema,performance_schema
Executed_Gtid_Set:
1 row in set (0.00 sec)

再在从库执行

mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)

mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=156;
Query OK, 0 rows affected (0.02 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

验证,在从库执行

mysql> show slave status\G 

两个都为Yes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值