win10搭建mysql主从复制的两个测试主从数据库

mysql主从复制基础–win10电脑设置两个mysql数据库

卸载MySQL数据库

  1. 本人只是想把自己的mysql5.7.4升级为mysql8版本,这里顺带记录一下,以便有需要的人查看
  2. 备份数据库
    本人使用的是sqlyog(数据库连接工具)将自己需要的数据库导出sql,没有备份系统数据库,这个备份操作需要自己百度
  3. 在控制面板中使用程序卸载MySQL
    在这里插入图片描述
    在这里插入图片描述
    之后的界面就不演示了,找到MySQL进行卸载就行了,这个操作应该都会,注意,如果没找到也没关系,本人就是没有找到,进行后续操作就行了
  4. 删除C盘中的两个文件
    1. C:\Program Files目录下的MYSQL目录
    2. C:\Program Files (x86)目录下的MYSQL目录
      这两个目录都不一定会有MYSQL目录,本人就只有在C:\Program Files (x86)目录下有MYSQL目录
  5. 删除注册表的信息
    本人之前删除mysql后续安装失败的例子也有,不过这次我在卸载的时候,只要将注册表的信息删除掉,下次安装就没问题了,虽然不懂理论,但经过几次的安装,也证实了我的这步操作能解决我电脑上的问题,如果觉得不想尝试的小伙伴我也没什么办法,毕竟不懂原理,但是经过了实践认证
    打开注册表的方式:按下win+R弹出运行窗口,之后输入regedit回车
    1. 删除目录HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\MySQLD Service
    2. 删除目录HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\EventLog\Application\MySQLD Service
      本人的注册表只有ControlSet001目录没有ControlSet002目录,不管他就是
  6. 删除C:\ProgramData\MySQL目录
  7. 停止服务
    1. 办法一:使用命令提示符进入之前安装服务的mysql根目录下的bin目录,然后执行mysqld -remove命令
    2. 办法二:使用win+R打开运行窗口,输入services.msc,在服务表中找到当时安装mysql的服务名,一般名字都为mysql相关的,停止该服务
      在这里插入图片描述
      我这里还学习了一个命令,在停止mysql服务之后,可以用管理员的命令提示符输入sc delete 服务名的命令将某个服务删除,这里我将mysql5.7服务名从服务列表中删除了

安装MySQL数据库(主数据库,端口号3306)

  1. mysql8安装地址https://dev.mysql.com/downloads/mysql/
    在这里插入图片描述
    在这里插入图片描述
  2. 本人的安装包安装在了D盘,为了方便演示,各位读者记得后续输入设置自己的路径
  3. 以前安装MySQL5.7的时候,有个操作是设置环境变量MYSQL_HOME,这里注意,如果要启动两个不同端口的数据库(比如3306和3307端口各启动一个MySQL服务),不要设置环境变量(本人亲测)
  4. 在解压的mysql根目录下面创建my.ini配置文件(这个文件本来是不存在的,由我们手动创建),使用编辑器(本人使用idea)编辑内容如下
    在这里插入图片描述
  5. 配置文件格式如下
    需要注意的点用序号标出来了,其解释如下(按照序号)
    1. server-id:数据库之间设置不一样即可,log-bin=mysql-bin不需要修改
    2. 设置自己需要同步的数据库名
    3. 设置不需要同步的数据库,binlog-ignore-db=mysql这句话不用改,mysql是自带的数据库
    4. 启动端口就是我们数据库占用win服务的端口,默认的mysql都是3306端口,后面配置从数据库的时候需要改成其他端口比如3307
    5. basedirdatadir设置安装后的目录,这里的目录名需要自己新建(新建mysql8目录和data目录),否则会报错
    6. 这里的端口和第4点的端口保持一致
[mysqld]

# 1.设置本数据库的id,主库和从库需要不一致
server-id=1
log-bin=mysql-bin
# 2. 设置需要同步的数据库``
binlog-do-db=work5
# 3. 设置不需要同步的数据库
binlog-ignore-db=mysql

# 4. 启动端口
port=3306
# 5. 配置mysql的安装路径
basedir="D:\MySQL\mysql8"
datadir="D:\MySQL\mysql8\\data"

max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB

[mysql]
default-character-set=utf8mb4

[client]
# 6. 这里配置和上面的启动端口一致
port=3306
default-character-set=utf8mb4
  1. 用管理员进入命令提示符,进入解压后mysql的bin目录,输入mysqld --initialize --user=mysql --console ,这个过程不允许出错,在成功的末尾会看到mysql安装成功的登录密码,类似于我给出的界面,该密码要记住
    在这里插入图片描述
    在这里插入图片描述
  2. 安装服务
    1. 使用管理员的命令提示符进入mysql解压目录的bin目录(也就是上一点的那个地址)
    2. 输入mysqld --install mysql8 --defaults-file="D:\MySQL\mysql-8.0.29-winx64\mysql-8.0.29-winx64\my.ini",这里mysql8是服务名,可以自定义,后面设置的–defaults-file需要输入自己创建的my.ini配置文件的路径。
    3. 此时打开服务列表(win+R,输入services.msc),就可以在列表中找到mysql8服务,之后启动服务
  3. 使用命令提示符,输入mysql -u root -p,之后输入上面获取的初始化密码(用键盘输入,无法复制粘贴
  4. 进入成功之后第一件事就是使用命令alter user root@localhost identified by '自己的密码'将密码改成自己的

安装MySQL数据库(从数据库,端口号3307)

  1. 将刚刚解压的mysql8的目录复制一份,或者使用已有的mysql列表复制一份
    在这里插入图片描述
  2. 将上面的my.ini文件信息进行更改,比如我的从库my.ini内容如下
    只有第1、4、5、6点要做更改,其中第5点的目录mysql-slavemysql-slave\\data都要自己手动创建
# 1.设置本数据库的id,主库和从库需要不一致
server-id=2
log-bin=mysql-bin
# 2. 设置需要同步的数据库``
binlog-do-db=work5
# 3. 设置不需要同步的数据库
binlog-ignore-db=mysql

# 4. 启动端口
port=3307
# 5. 配置mysql的安装路径
basedir="D:\MySQL\mysql-slave"
datadir="D:\MySQL\mysql-slave\\data"

max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB

[mysql]
default-character-set=utf8mb4

[client]
# 6. 这里配置和上面的启动端口一致
port=3307
default-character-set=utf8mb4
  1. 使用管理员的命令提示符进入复制从库的mysql的bin目录,输入命令mysqld --initialize --user=mysql --console安装成功获取到mysql初始化密码
    在这里插入图片描述
  2. 注意,如果从库运行失败,说明有可能是因为设置了mysql环境变量,我之前就是因为这个问题,设置环境变量之后,这次从库的安装信息每次都读取到了环境变量里设置的路径,所以把环境变量的mysql删了就没问题了,删除之后如果还有问题,重启电脑即可解决问题
  3. 此时命令提示符的所在目录依旧在赋值mysql的bin目录,输入mysqld --install mysql8-slave --defaults-file="D:\MySQL\mysql-8.0.29-slave\mysql-8.0.29-winx64\my.ini",这里的mysql8-slave--defaults-file都是上面说过的,一个是自定义服务名,一个是my.ini路径。
  4. 使用win+R,输入services.msc,找到mysql8-slave启动服务
  5. 连接3307端口的mysql
    根据端口启动mysql数据库的命令如下,以前都是默认3306端口所以不需要指定
    mysql -h127.0.0.1 -P3307 -u root -proot
  6. 连接成功之后记得重新设置root密码

启动问题

  1. 重启电脑之后再次在命令行输入mysql -u root -p登录的命令失效,报错原因为不认识mysql,因为我们将mysql的环境变量取消了
  2. 解决
    1. 找到当时安装的mysql根目录的bin目录,在这个目录下使用mysql -u root -p是没有问题的
    2. 主库和从库的启动方法都是一样的
  3. sqlyog连接工具无法连接到从数据库
    在这里插入图片描述
    这是因为mysql新版的身份认证密码插件不一样了
    1. 先使用命令提示符登录上mysql,我这里的主库是可以用sqlyog连接到的,使用命令查询使用的身份认证插件select Host,User,plugin from mysql.user;,得知root@localhost使用的是mysql_native_password
      在这里插入图片描述
    2. 从库无法连接,同理使用命令查看,发现root@localhost使用的是caching_sha2_password
      在这里插入图片描述
    3. 这里将root@localhost用户改成mysql_native_password就行了,使用命令alter user root@localhost identified with mysql_native_password by 'root';
    4. 测试成功
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值