首页 > 数据库 > Mysql > CENTOS服务器MYSQL5.6和5.7多开实例教程

CENTOS服务器MYSQL5.6和5.7多开实例教程

Mysql

一、问题情况

因为需要一台物理服务器跑多个网站,有些网站数据库还需要主从,所以需要多个实例来运行mysql数据库。

二、教程说明

首先要看下mysql的版本是5.6还是5.7,因为5.7.6之后mysql只能使用mysqld初始化数据库,之前可以用mysql_install_db初始化数据库

首先复制一份3306端口的mysql配置文件出来(新实例端口我们使用3307,如果多开可以一次类推3308/3309...)

接着修改刚复制出来的mysql配置文件

5.6及以前版本可以使用下面命令初始化数据库--basedir为mysql安装目录,--defaults-file为刚修改的配置文件,网上有写用--datadir指定初始化数据库目录的,测试发现会提示3306实例目录的innodb文件正在被占用,安全起见还是修改好配置文件里的目录直接指定配置文件初始化比较好,如果scripts下没有可以看下bin里是否有mysql_install_db

初始化完成以后可以使用下面命令启动3307数据库

启动以后可以用sock方式或者端口方式登录3307数据库(初始化后root密码为空)

sock方式:

端口方式(需要指定服务器-h,端口是大写-P):

5.7及以后版本可以用mysqld初始化数据库(--defaults-file要放第一个选项)

MySQL5.7使用mysqld命令初始化数据,--initialize-insecure 或 --initialize参数可以定制密码复发度、有效期,并指定是否为root@localhost用户设置临时密码

服务启动后,由于多个实例重启没有自带的服务脚本所以这里提供一个多端口mysql服务脚本,需注意下sock和cnf名称必须是用端口号命名才行.

保存好以后要给服务脚本可执行权限

后面启动关闭重启其他端口mysql可以用以下命令