最近想要学习开发项目,发现自身的mysql太低。不能完好的导入sql文件,又因为原本的mysql的存储重要数据,于是多开的mysql的想法于是出现,其实就是开个其他的端口,不要和原本的3306冲突就行。
下载原始mysql版本解压到指定目录中,这里最好和原本的mysql版本平行目录
第一步:把其他mysql服务停掉,为多开的mysql添加环境变量
1:计算机右键管理进入此页面。双击服务进入该页面。
2:为多开的Mysql添加环境变量。
第二步:填写my.ini文件
解压的官网没有这个文件。我们可以从其他版本复制过来,把里面的内容清空,填写下面内容因为是多开,所以这里需要换个端口。
下面的目录记得要修改自己实际目录
[mysqld]
# 设置3307端口,为了与旧版本的区分不冲突
port=3307
# 设置mysql的安装目录
# 切记此处一定要用斜杠\,我这里是斜杠可以用
basedir=C:\Program Files\MySQL\mysql-8.0.28-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\MySQL\mysql-8.0.28-winx64\data
# 允许最大连接数
max_connections=300
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集
character-set-server=UTF8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# MySQL8.0.4之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。
# 但因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,我暂时改回了“mysql_native_password”认证插件。
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# SQL MODE设置,去掉了only_full_group_by
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysql]
# 设置mysql客户端默认字符集
default-character-set=UTF8MB4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=UTF8MB4
第三步:初始化我们下载的数据库。
进入管理员命令指示符(在我们所要的MYSQ版本下bin目录下运行cmd),
输入mysqld --initialize-insecure --user=mysql,初始化数据库,并设置默认root为空,初始化完成后,在mysql根目录中会自动生成data文件.
第四步:注册mysql服务到系统上
下面的目录记得要修改自己实际目录
这个命令如果有问题。建议执行第二个
mysqld install MYSQL8 --defaults-file=C:/Program Files/MySQL/mysql-8.0.28-winx64/my.ini
前面环境设置起的作用就来了,因为环境变量设置过了,他会自动识别我们目录,mysql8 是别名,我们可以自己设置
mysqld install MYSQL8
可以看见第一个无效,第二个成功了
可以看见注册表有两个mysql了
注意:下面的imagepath属性是否是多开的目录(mysql8的),有时候他会显示另外的版本目录,看看是否有变化,正常没问题
回车然后执行以下命令,后面mysql8 是别名
net start mysql8
启动成功
小知识
如果要删除某个注册服务,可执行如下命令
sc delete 服务名
第五步测试
密码是在初始化生成的,在前面有提到,大P是我们指定的端口,密码默认为空,直接回车进去
mysql -P3307 -uroot -p
完美启动。
下面同时启动两个Mysql
通过navicat来连接,
完美运行成功,这个sql文件,在mysql5.5是执行不起来的。
写在最后
一般配置完即为开机启动。也可以手动修改。在系统桌面右键计算机(或者我的电脑,此电脑),在弹出的菜单点击“管理”按钮,再选择服务,设置成自动就可以了