主从复制原理从机(slave)通过读取和同步主机(master)上的二进制日志上的事件(events),在从机本地的数据库中来重现(也可理解为重做)这些操作,从而达到复制的效果。

本人使用的是在windows上挂在两台 ubuntu 18.04虚拟机  mysql8.0

 一:安装mysql 8.0

mysql 8.0 安装:

1、https://dev.mysql.com/downloads/repo/apt/  

拖到最底部

MySQL主从复制1062 MySQL主从复制配置ubuntu_重启

2、运行命令

1 sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb (根据你下载的文件名做出相应的更改)
2 sudo apt update

3、sudo apt install mysql-server

4、输入root密码

这一步需要注意,如果没有该步骤让你输入root密码就得重新安装一遍,反正我第一遍安装没提示输入root密码,导致后面用文件中的密码登录失败,最后修改root密码还是一直失败。最后重新安装一遍就OK了

二、搭建主从复制:

1、配置主机(Setting the Replication Master Configuration)

1.1、vim /etc/mysql/mysql.conf.d/mysqld.cnf # 编辑默认的配置文件

1.2、在文件中的mysqld的组中添加一个选项:

[mysqld]

server-id = 456

server-id = 456 #配置主机的server-id 为 456主机server-Id 可任意配置,默认为0,如果配置主机的server-id是0,那么它将会拒绝任何从机的连接

Ps:执行该步骤

指令:

Insert:进入编辑状态

Shift + ;:退出编辑

Wq:保存

1.3、上步骤保存之后,执行以下命令,重启Mysql服务  
service mysql restart

1.4、重新登录MySQL客户端,执行下面的命令

show variables like '%server_id%'


2、从机配置(Setting the Replication Slave Configuration)

从机配置同主机一致

3、为复制创建用户(Creating a User for Replication)

登录主机MySQL客户端

3.1、给主机创建从机用户

create user 'repl_slave'@'202.192.63.61' identified by 'password';

‘repl_slave’:从机用户名

'202.192.63.61' :从机IP

'password':从机数据库密码

3.2、创建完用户,赋予权限

grant replication slave on *.* to 'repl_slave'@'202.192.63.61'

Mysql 8.0 默认的密码格式为:’mysql_native_password

3.3、主机上执行命令

show master status;

 

记住这两个值,后面配置有用

 

MySQL主从复制1062 MySQL主从复制配置ubuntu_root密码_02

 

4、在从机上建立主机的配置(Setting the Master Configuration on the Slave)

其中master_log_file和master_log_pos为上一步查询对应的两个值;

 

MySQL主从复制1062 MySQL主从复制配置ubuntu_mysql_03

 

注意:每次服务器重启需要查询主机的日志,即执行指令:show master status;

先stop slave;然后从机上重新配置参数,start slave 执行一次