mysql windows安装_windows 安装mysql多版本 主从复制

v2-86f3ee4d9db9f95ca52887a0a5591ac1_1440w.jpg?source=172ae18b

作者:chenjunbiao

出自:SegmentFault 思否

原文:segmentfault.com/a/1190000025135698


在windows7下安装mysql以下版本:
1、mysql-5.7.28
2、mysql-8.0.20:主库
3、mysql-8.0.20:从库

一、mysql-5.7.28安装和启用

1.1 下载安装

我使用的是免安装版本,把文件解压出来如下路径:F:mysqlmysql-5.7.28-winx64

1.2 配置信息

首先在F:mysqlmysql-5.7.28-winx64路径下新建my.ini文件,内容如下:

[mysqld]
# 设置服务端使用的字符集为utf-8
character-set-server=utf8
# 设置mysql的端口号
port = 3306
# 设置mysql的安装目录(能看到bin即可)
basedir=F:mysqlmysql-5.7.28-winx64
# 设置mysql数据库的数据的存放目录(即data文件夹,必须是空目录)
datadir=F:mysqlmysql-5.7.28-winx64data
# 允许最大连接数
max_connections=2000
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置mysql以及数据库的默认编码
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
# 设置客户端默认字符集
[client]
port = 3306
default-character-set=utf8

注意:basedir和datadir的路径不要出现中文和空格。

1.3 安装及初始化

进入F:mysqlmysql-5.7.28-winx64bin,按住Shift+右键,选择"在此处打开命令窗口",执行如下命令:

mysqld install

v2-9952b51188c695c94b45494bab189ca6_b.jpg

出现Service successfully installed.表示安装成功。接下来继续执行mysqld --initialize --console

v2-f8c545329890e4035241609ef23ada0c_b.jpg

最后的=WsstAcIc4oh是数据库的初始化密码,记住它,后面需要用到它进行密码重置。

1.4 启动服务

继续在CMD执行如下命令:net start mysql

v2-a9cad1aa25f19b464b7b698b6aee21de_b.png

(net stop mysql 是停止服务,sc delete mysql是删除服务)

同样在bin目录下,执行mysqld -nt --install用来开机时自动启动此服务。

1.5 重置密码
同样在bin目录下,执行:

mysql -uroot -p

然后输入初始密码。

进入mysql后,执行重置密码指令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

v2-42973cf768d5454f2246b2dfc10acc9b_b.jpg

二、mysql-8.0.20安装和启用

2.1 下载安装

下载后解压到路径:F:mysqlmysql-8.0.20-winx64

2.2 配置信息

首先在F:mysqlmysql-8.0.20-winx64路径下新建data文件夹和my.ini文件,内容如下:

[mysqld]
# 设置3307端口(原先的mysql5已经占用3306)
port=3307
# 设置mysql的安装目录(你自己的目录)
basedir=F:mysqlmysql-8.0.20-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:mysqlmysql-8.0.20-winx64data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8

注意:basedir和datadir的路径不要出现中文和空格。

2.3 关闭原先的mysql服务

WIN+R键输入services.msc打开服务,停止所有在运行中的Mysql服务。

v2-602b8d29e7f6d526e076953a788da52f_b.jpg

2.4 安装及初始化

进入F:mysqlmysql-8.0.20-winx64bin,按住Shift+右键,选择"在此处打开命令窗口",执行如下命令:

mysqld --initialize --console

v2-997cbc48f37b9ce19658042986dd15d0_b.jpg

最后的_t:KDa)PP7nV是数据库的初始化密码,记住它,后面需要用到它进行密码重置。

接下来继续执行

mysqld --install MySQL8

若出现Service successfully installed.表示安装成功。

2.5 启动服务

继续在CMD执行如下命令:

net start mysql8

(net stop mysql8 是停止服务,sc delete mysql8是删除服务)

同样在bin目录下,执行

mysqld -nt --install

用来开机时自动启动此服务。

2.6 重置密码

同样在bin目录下,执行:

mysql -uroot -p

然后输入初始密码。

进入mysql后,执行重置密码指令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

三、mysql-8的主从配置

安装前请停止所有正在运行中的数据库服务,详见2.3操作步骤。

另外数据库的版本号尽量保持相同,如下图,我使用mysql-8.0.20-winx64作为主数据库,mysql-8.0.20-winx64-2作为从数据。

v2-997cbc48f37b9ce19658042986dd15d0_b.jpg

不管是主数据库还是从数据库,安装配置的步骤跟上面第二步安排mysql8是类似的。

1、分别配置my.init文件:

Master主数据库的my.ini配置,新增如下内容:

[mysqld]
# 主库配置
server_id=1log-bin=mysql-bin

# 需要同步的数据库
binlog-do-db=demo

Slave从数据的my.ini配置,新增如下内容:

[mysqld]# 从库配置
server_id=2
log-bin=mysql-bin

#需要同步的数据库
binlog-do-db=demo

由于是在同一个windows环境下安装多个mysql服务,故每个mysql服务的端口号不能重复。而且my.ini配置文件里面的server_id也不能同名。

2、注册不同的服务名称

由于操作步骤2.5中生成了服务名称:mysql8。我打算用它来当作主数据库,故使用sc delete mysql8先删除掉,之前为主数据库注册一个容易记住的新名称。

进入F:mysqlmysql-8.0.20-winx64bin目录下执行:

mysqld --install MySQL8-master

同样的F:mysqlmysql-8.0.20-winx64-2bin目录下执行:

mysqld --install MySQL8-slave

3、开启主从同步

1、首先进入master,创建一个给slave的访问账号

账号admin01,密码admin123456

CREATE USER admin01@'%' IDENTIFIED WITH 'mysql_native_password' BY 'admin123456';
GRANT REPLICATION SLAVE ON *.* TO admin01@'%';
FLUSH PRIVILEGES;

2、查看master的状态:

show master statusG;

v2-0595b7b256f84effb31cf767584abbb7_b.jpg

File的值为mysql-bin.000004。这个值可以在my.ini中指定:log_bin-index=master-bin.index,没有指定的话则由系统自动生成。

3、登录slave从库,进入mysql后输入以下指令,用于从库设置主库的连接信息:

CHANGE MASTER TOMASTER_HOST='192.168.0.212',
MASTER_PORT=3307,
MASTER_USER='admin01',
MASTER_PASSWORD='admin123456',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=832;

说明:

MASTER_HOST:主数据库的主机ip
MASTER_PORT:主数据库的端口,不设置则默认是3306
MASTER_USER:主数据库被授予同步复制权限的用户名
MASTER_PASSWORD:对应的用户密码
MASTER_LOG_FILE:在主数据库执行命令show master status 查询到的二进制日志文件名称
MASTER_LOG_POS:在主数据库执行命令show master status 查询到的位置 Position的值

4、开启主从同步:start slave;

查看主从同步状态:

show slave statusG;

v2-fc571fd31c8eceb367664baa51301cc9_b.jpg

如果出现Slave_IO_State为Waiting for master to send event,以及Slave_IO_Running和Slave_SQL_Running为Yes,则表示从库已同步主库成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值