windows多实例mysql部署

环境:win7,已安装一台5.7.22mysql,再装一台5.7.26mysql,

mysql版本没有影响,但是第二台mysql版本建议要比第一台高。

一 先停止之前安装的低版本mysql服务:(重要)

net stop mysql57

或者在这里停止

 

二 去掉先前mysql的环境变量:(重要)

 

如果有环境变量务必要先取消,这前两步很重要,我失败了两次都是到最后启动mysql时失败,没有任何报错。

 

三 安装第二个mysql5.7.26

官网下载的我放度盘了           提取码:s1c2

3.1 自定义解压到指定文件夹

 

刚解压完是没有data目录的,不要手动创建!

创一个my.ini文件

[Client]
port = 3307

[mysqld]

#设置端口
port = 3307

#指定server-id
server-id = 2

#开启binlog日志
log-bin=mysql-bin

#指定中继日志名字
relay-log=relay-log

#跳过密码验证
# skip-grant-tables

# 设置mysql的安装目录
basedir=C:\mysql2\mysql-5.7.26-winx64

# 设置mysql数据库的数据的存放目录
datadir=C:\mysql2\mysql-5.7.26-winx64\data

#bin log日志每达到设定大小后,会使用新的bin log日志
max_binlog_size = 200M

#保留指定日期范围内的bin log历史日志,以下设置的15天内
expire_logs_days = 15

# 允许最大连接数
max_connections=200

#设置提交方式(自动提交)
autocommit=1

#隔离级别(读已提交)
transaction-isolation = READ-COMMITTED

#STRICT_TRANS_TABLES在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制
#NO_ENGINE_SUBSTITUTION如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常。
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" 

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

 

端口,server-id,安装路径根据自己的修改。

 

3.2 进入第二个mysql5.7的bin目录下

安装mysql服务,指定该mysql服务名为mysql2,并根据my.ini文件进行安装,命令如下:

C:\mysql2\mysql-5.7.26-winx64\bin>mysqld install mysql2 --default-file="C:\mysql2\mysql-5.7.26-winx64\my.ini"

成功安装后会提示:

Service successfully installed.

去服务里面,可查看到此时多了一个mysql2服务。

 

3.3 初始化数据库

mysql服务安装成功后,就需要初始化数据库了,否则是无法启动服务的。

在bin目录下执行如下命令

mysqld --initialize

mysqld -install

初始化成功后,命令行没有任何提示。但在mysql5.7文件夹中已自动生成了data目录

 

四 修改注册表信息

打开注册表regedit,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql2,修改ImagePath参数,更正mysql2服务相关路径。

修改ImagePath参数。

 

五 启动数据库,修改密码

使用net start mysql命令启动mysql2服务(明明我设置的是mysql2,但是mysql2就是无法启动,必须是mysql,还好第一个数据库的服务名称是MySQL57,不然这里就启动不了了,反复做了好几遍,一出现无法启动没有报告任何错误,3534,基本就凉了,彻底卸载mysql重装都没用,第二个数据库会一直报这个错无法启动,也不知道是什么原因,如果是单一台数据库出现这个问题倒是还能解决,多实例就没办法了,一定要先在虚拟机上测试是否能部署成功再在服务器上部署。)

如果出现服务无法启动,没有报告任何错误,先检查下开头两步确认了没。

mysql2服务启动后,去data/xxx.err文件中找到临时密码,进行登录

使用临时密码进行登录(注意:P 端口,p 密码

C:\mysql2\mysql-5.7.26-winx64\bin>mysql -P3307 -uroot -p

Enter password: ************    (此处输入的是临时密码)

修改密码

mysql> set password for root@localhost=password('123456');

mysql> flush privileges;

退出使用新密码登录即可。

如果在该文件没有找到临时密码,那就关闭MySQL,改下my.ini配置文件,去掉skip-grant-tables的注释,重启mysql

无密码登陆后:

update mysql.user set authentication_string=password("root") where user="root";
flush privileges;

然后注释掉skip-grant-tables重启mysql即可。

 

六 最后再还原环境变量,因为有两个mysql,任意用其中一个的绝对路径做变量皆可。

启动时通过不同服务名,登录时通过端口区分。

经测试,发现如果是用哪个路径的MySQL安装目录做环境变量,那么启动的时候不加端口默认就是这个路径的MySQL,也就是说如果用第二台数据库的环境变量,那么登陆3306端口的第一台数据库就必须要加上-P选项指定端口登陆了。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值