1、使用rpm安装后,会有三个重要目录
1)var/lib/mysql 这是datadir,存数据库,存socket
2)etc/my.cnf 这是从usr/share/mysql中的my-default复制过来的
3)usr/bin/xxx xxx为一些mysql脚本命令
2、将var/lib/mysql 复制成mysql1、mysql2,并chmod -R 777 var/lib/mysql1 ,chmod -R 777 var/lib/mysql2
3、修改my.cnf,去掉mysqld,添加
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = root
password = root
[mysqld1]
socket = /var/lib/mysql1/mysql.sock
port = 3306
pid-file = /var/lib/mysql1/db.pid
datadir = /var/lib/mysql1/
user=root
query_cache_size = 32M
character-set-server=utf8
query_cache_type=1
[mysqld2]
socket = /var/lib/mysql2/mysql.sock
port = 3307
pid-file = /var/lib/mysql2/db.pid
datadir = /var/lib/mysql2/
user = root
query_cache_size = 32M
character-set-server=utf8
query_cache_type=1
4、实例化3306、3307两个数据库(该命令使用一次就可以了,即下次不需要再实例化)
/usr/bin/mysql_install_db --datadir = /var/lib/mysql1 --defaults-file = /etc/my.cnf --user=root
/usr/bin/mysql_install_db --datadir = /var/lib/mysql2 --defaults-file = /etc/my.cnf --user=root
5、使用mysqld_multi起停数据库
mysqld_multi --defaults-extra-file = /etc/my.cnf --user =root start 1,2(=前后面不能有空格)
6、使用mysqld_multi report 判断两个实例是否启动
7、使用socket文件登录
mysql -uroot -p -S /var/lib/mysql1/mysql.sock -P3306
mysql -uroot -p -S /var/lib/mysql2/mysql.sock -P3307
8、关闭实例
mysqladmin -uroot -p -S /var/lib/mysql1/mysql.sock -P3306 shutdown
mysqladmin -uroot -p -S /var/lib/mysql2/mysql.sock -P3307 shutdown
另外可以通过kill命令结束。另外,mysqld_multi在5.6版本后不支持关闭实例
9、测试时注意防火墙问题
centos7 中 开启防火墙端口 firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload重启生效
10、虚机重启后,由于是rpm安装,会自动启动mysql,所以需要关闭,systemctl stop mysql.service。也可以使用systemctl disable mysql.service禁止开机启动。之后才能使用多实例。
注意:使用rpm安装mysql,会开机启动。所以,如果不想使用单实例的,那么开机后,就需要systemctl stop mysql.service。关闭单实例的mysql
netstate -lntp查看端口占用