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的主从配置搭建已经完成 。