前言
大学把数据库的课全翘了,之后可能是报应吧,后面数据库相关的东西怎么都学不会。最近有个MySQL多开的需求,正好借这个机会再复习一遍MySQL安装配置。
写这篇博客还有另一个原因,现在网上搜到的MySQL多开教程都不是针对5.7版本的,直接按那些教程做很多地方会报错。
MySQL多实例的原理
MySQL本来就可以多实例运行,只要修改启动脚本和配置文件,把端口,basedir,datadir文件夹分开,两个实例就可以互不影响运行。但是这种方式太过繁杂,所以MySQL官方提供了一个mysqld_multi的程序来辅助实现多实例运行,本篇教程就使用这种方式。
一,创建并初始化data文件夹
几个实例要分开运行,必然要把数据库文件放到不同文件夹中,所以第一步是要建立各个实例的数据文件夹,这里假设我们要运行三个实例,端口分别是3306,3307,3308,为了方便维护,我们把数据文件夹也按照端口号来命名:
mkdir /mnt/data/mysql/3306
mkdir /mnt/data/mysql/3307
mkdir /mnt/data/mysql/3308
chown mysql:mysql /mnt/data/mysql/3306
chown mysql:mysql /mnt/data/mysql/3307
chown mysql:mysql /mnt/data/mysql/3308
建好文件夹后,我们还要初始化数据文件夹,旧的命令是:
mysql_install_db --basedir=/usr/local/mysql --datadir=/mnt/data/mysql/3308 --user=mysql
这个命令已经不能再用!!!
按照官方教程,新的命令应该是:
mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql/mysql --datadir=/opt/mysql/mysql/data
但是这个命令也会报错!!!
正确的做法是:
mysqld --defaults-file=/opt/mysql/mysql/etc/my.cnf --initialize-insecure --user=mysql
其中的原因我没有细究,可能是mysqld --initialize-insecure 还需要几个参数,.cnf文件里有提供这几个参数。
新建几个.cnf文件,用来初始化数据文件夹,.cnf文件内容如下:
[client]
port = 3308
socket = /tmp/my

本文详细介绍了如何在MySQL 5.7中配置多实例,包括创建并初始化data文件夹、配置my.cnf文件、启动和关闭多个实例以及root账户管理。针对5.7版本的特性,指出了初始化数据文件夹和配置文件的注意事项,提供了解决启动和关闭实例时可能遇到问题的方法。
最低0.47元/天 解锁文章
配置教程&spm=1001.2101.3001.5002&articleId=79567744&d=1&t=3&u=4f1e987368034f8891592f64744b9ada)
4585

被折叠的 条评论
为什么被折叠?



