1.本次搭建的版本 mysql-8.0.25-win-x64
2.在解压完成后的文件内并没有对应的my.ini的配置文件这个my.ini是需要的主配置文件需要自行创建。
注:安装路径及数据存放路径需根据实际安装情况进行修改(其它配置信息可结合实际情况进行修改)
3.在新建的my.ini内新增相关对应的配置
4.二进制日志的作用
二进制日志主要记录mysql数据库的变化,二进制日志包含所有更新了数据或者潜在更新了数据(如没有匹配到任何行的delete语句),语句以时间的形式保存,描述了数据的更改。二进制日志还包含执行每个更新数据库语句的时间信息,使用二进制日志的主要目的是最大可能的恢复数据库。因为二进制日志包含备份后进行的所有更新,不记录没有修改任何数据的语句。
二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但不包括数据查询(select、show)语句。
1)灾难时的数据恢复;
2) MySQL的主从复制。在MySQL8版本中,默认二进制日志是开启着的涉及到的参数 : show variables like ‘%log_bin%’
5.创建相关目录
在mysql-8.0.25-winx64文件内 新建log 以及data文件夹,log文件存储的是mysql_error.log相关日志 , data目录下存储的是对应的数据目录,当你完成mysql数据初始化的时候data目录下会生成对应的相关数据文件。因为在my.ini配置文件中指定的目录就是对应的data目录。
6.设置环境变量
我的电脑-右键属性-高级系统设置-环境变量
7.初始化mysql密码
1)使用管理员身份进入cmd 打开对应的DOS界面
下图这个提示是对应的管理员提示 说明已经以管理员的身份开始运行了
2)进入mysql的bin目录,并执行以下指令初始化MySQL
特别注意:上边这一步一定是 在MySQL目录下的bin目录下执行命令: 开始初始化mysql 相关命令mysqld --initialize --console
3)复制root@localhost:之后的密码到本地文件夹,保存好( : 后有一个空格,不复制)
7安装mysql服务并启动+修改密码
mysqld --install mysql(特别提示这个命令一定是在mysql对应的bin目录下执行)之后会提示服务已经成功安装。
使用如下命令启动MySQL:net start mysql
通过命令netstat查看端口,确认mysql服务器 已经启动成功。
刚才初始化获得的密码 登录到服务器MySQL上。
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
新的密码请牢记,这里举例因此使用了简单的'123456'
使用如下命令刷新一下
flush privileges;
8.主服务器配置
把刚才的配置文件my.ini在从库的mysql-8.0.25winx6目录下在复制一份, 并新建一个data 、log文件夹,在安装备库的步骤重点参考前边对应主库的配置,这里特别注意的是端口需要更改,server-id必须与主库的是不一样的,
SHOW VARIABLES LIKE 'server_id'; 这个时候查询到的server-id是配置文件里写到的3307。
9.从数据库设置
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
SELECT user FROM mysql.user; 查看所有用户
登录主数据库创建一个用户用于从数据库复制(localhost从库ip):
create user 'slave'@'%' identified with mysql_native_password by '123456';
grant replication slave on *.* to 'slave'@'%'; 授权这个账号
mysql8不能直接给账户授权 需要先创建用户在授权
配置并创建完相关的账号与密码 ,这个时候我们要查看master状态(配置从库需要):
下面截图中的file 对应的 mysql-bin.000003 与 position 156 这个要记住。
这个时候的配置是在从库上 将master_log_file换成上一步的File文件名,master_log_pos换成上一步的position位置。
说明:这句话可以多次执行,如果你发现其中一些信息填错了是可以再次执行该命令的,但是再次执行之前需要先执行停止和重置复制的命令STOP SLAVE;和RESET SLAVE;
#master_host 主数据库地址
CHANGE MASTER TO master_host ='主服务器ip',
#设置主数据库的端口号
master_port=3307,
#上一步中主数据库创建的从库用户
master_user='slave',
#上一步中主数据库创建的从库密码
master_password ='123456',
#上一步中保存的file
master_log_file='mysql-bin.000002',
#上一步中保存的position
master_log_pos=1285;
grant all on *.* to 'slave'@'%';
启动从库复制并查看状态(主要是看IO和SQL线程是否正常运行):
#开启主从复制
start slave
#显示从服务器复制状态
我们通过这个命令这个时候就可以看到show slave status \G 相关从库的IO与slave
箭头中出现两个yes就说明 mysql的主从配置搭建已经完成 。