原来通过yum安装了mysql数据库,在此基础上有添加一个实例,实现多实例,配置 多实例主要有两种方式,一个是每个实例一个配置文件,一种是一个配置文件,通过mysqld_mulit来统一管理的,本文介绍后一种方式。
yum安装mysql
查看mysql是否已安装
yum list installed mysql*
或
rpm -qa|grep mysql*
查看有关mysql的安装包
yum list mysql*
安装mysql客户端
yum install mysql -y
安装mysql服务
yum install mysql-server mysql-devel -y
安装完成后,我们来看一下原配置文件/etc/my.cnf
此文件的部分配置我们将在mysql_multi.cnf文件中使用,当然也可以自己创建新的,完全弃用此文件的配置
创建数据目录
因为考虑使用默认的部分配置,所以我们只创建新增实例的数据目录
mkdir /var/lib/mysql_3307
修改目录的属主
chown -R mysql.mysql /var/lib/mysql_3307
创建并配置mysql_multi.cnf
[root@mio ~]# vi /etc/mysql_multi.cnf
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe #这里的命令路径通过whereis 查询,见下图
mysqladmin = /usr/bin/mysqladmin
#user = root #数据库的登录帐号和密码,初始安装数据库是木有密码的,
#password = 123456 所以我先注销,稍后设了密码再取消注释,要求两个实例帐号密码一样,不然没法关闭实例
log = /var/log/mysqld_multi.log
[mysqld3306]
socket = /var/lib/mysql/mysql.sock
datadir= /var/lib/mysql
pid-file =/var/lib/mysql/3306.pid
log =/var/lib/mysql/3306.log
user = mysql
port = 3306
[mysqld3307]
socket = /var/lib/mysql_3307/mysql3307.sock
datadir=/var/lib/mysql_3307
pid-file =/var/lib/mysql_3307/3307.pid
log =/var/lib/mysql_3307/3307.log
user= mysql
port=3307
初始化实例
刚刚只是yum 安装了数据库服务,并木有初始化,所以我们初始化两个实例
mysql_install_db --datadir=/var/lib/mysql --user=mysql
mysql_install_db --datadir=/var/lib/mysql_3307 --user=mysql
两个“OK”表示初始化成功
查看、启动、关闭多实例
查看多实例的状态
mysqld_multi --defaults-extra-file=/etc/mysql_multi.cnf report
启动实例
mysqld_multi --defaults-extra-file=/etc/mysql_multi.cnf start
关闭实例
mysqld_multi --defaults-extra-file=/etc/mysql_multi.cnf stop
还可以单独启动和关闭实例
mysqld_multi --defaults-extra-file=/etc/mysql_multi.cnf start 3306
mysqld_multi --defaults-extra-file=/etc/mysql_multi.cnf start 3307
mysqld_multi --defaults-extra-file=/etc/mysql_multi.cnf stop 3306
mysqld_multi --defaults-extra-file=/etc/mysql_multi.cnf stop 3307