同一个电脑安装两个mysql并开启远程访问

我的情况是先安装了MySQL8.X,然后又想安装MySQL5.x。说明这个是因为这个两个版本的MySQL安装起来有些不同。

安装MySQL8.x的步骤

因为是先安装的它,所以比较简单。这里使用的是zip安装的方法。

  1. 在MySQL目录下(与bin目录同级)创建my.ini文件。
[mysqld]
# 设置3306端口
port=3309
# 设置mysql的安装目录
basedir=F:\\Ripo\\software\\MySql8
# 设置mysql数据库的数据的存放目录
datadir=F:\\Ripo\\software\\MySql8\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3309
default-character-set=utf8mb4

需要注意的是:这里因为路径那里回转移字符,所以software的s会被\转义,所以这里要写两个\。这是因为这个文件编码是ANSI编码的原因。在下面执行命令是时带的路径不需要写两个\。

  1. 以管理员身份运行cmd,进去bin目录,运行
mysqld --defaults-file=F:\Ripo\software\MySql8\my.ini --initialize --console
在这条语句输入中,会告诉我们一个临时密码。,因这个密码登陆root用户。

在这里插入图片描述

  1. mysqld install MySql8 --defaults-file=“F:\Ripo\software\MySql8\my.ini”
  2. net start MySQL
  3. 如果执行net start MySQL语句出错。可以使用mysqld --console查看信息。
  4. 登陆 MySQL,然后修改密码。
mysql -u root -p --port=3309,然后输入控制台提示的临时密码;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';  
注意:MySQL5.x密码修改不是这个语句
  1. 刷新权限 :flush privileges;
  2. 允许远程访问
#允许root用户远程访问,下面前一个root是用户名,后面是密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
#再次刷新权限
flush privileges;
#若想仅允许用户myuser从ip为 123.57.20.21 的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'123.57.20.21' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果上面的远程访问报错如下错误:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'root' WITH GRANT OPTION' at line 1

参考下面的连接:
https://blog.csdn.net/zhouzhiwengang/article/details/102909298
如果不指定数据库,最后一句改成

GRANT ALL ON *.* TO 'root'@'%';
  1. 退出 quit;
安装MySQL5.x 后安装

作为后安装的MySQL,要在安装时指定配置好的 my.ini,因为端口啥的不能一样。

  1. 新建my.ini,写入下面代码
[mysqld]

#下面这四句很重要  尤其是 1、3、4句
port = 3307

character_set_server=utf8

basedir = C:/javaweb/mysql-5.5.62-winx64/mysql-5.5.62-winx64

datadir = C:/javaweb/mysql-5.5.62-winx64/mysql-5.5.62-winx64/data
  
#这个好像也不重要,不知道什么用
[WinMySQLadmin]
Server = C:/javaweb/mysql-5.5.62-winx64/mysql-5.5.62-winx64/bin/mysqld.exe
  1. MySQL5.x 没有 -initialize 命令,所以直接执行
#下面的mysql2是服务的名称,因为已经有一个服务了,这个不能重复,要自己定义,不然会提示已经存在
mysqld -install mysql2 --defaults-file="C:\javaweb\mysql-5.5.62-winx64\mysql-5.5.62-winx64\my.ini"

运行后可以在服务中看见连个mysql服务,但是下面的那个mysql2应该是没有启动的。现在直接启动的话会启动失败。MySQL注册表的更改和原因见这篇博客。
在这里插入图片描述
3. 然后要更改注册表,才能正常启动mysql服务,打开注册表开始修改注册表,windows键加R键输入regedit打开注册表, 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql2,修改ImagePath参数,把ImagePath值中mysqld 的位置改为MySQL5.x的安装位置即可,后面的部分不要变。

#myysql2是上一步的服务名
"你的mysql安装目录\bin\mysqld" --defaults-file=你的mysql安装目录\my.ini mysql2
  1. 启动新安装的MySQL服务 :net start mysq2
  2. 使用指定端口登陆,不然会默认用3306端口登陆,就不对了。
#密码默认为空
mysql -u root -p --protocol=tcp --host=localhost --port=3307  
  1. 修改密码,与MySQL8.x不同
use mysql; 
update user set password=password("root") where user="root";
  1. 开启远程访问的方式与上面相同
  2. 最后刷新权限:flush privileges;
  3. 退出 quit;

这篇是先安装MySQL5.x在安装MySQL8.x的操作(上面引用过了): https://blog.csdn.net/qq_14868375/article/details/94733448

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值