mysql多实例启动
- mysqld_multi :可以管理多个mysql实例
创建3个目录:
mkdir data1
chown mysql.mysql ./data1 -R
mkdir data2
chown mysql.mysql ./data2 -R
mkdir data3
chown mysql.mysql ./data3 -R
初始化数据库
mysql_install_db --basedir=/opt/mysqld --datadir=/opt/mysqld/data1 --user=mysql
mysql_install_db --basedir=/opt/mysqld --datadir=/opt/mysqld/data2 --user=mysql
mysql_install_db --basedir=/opt/mysqld --datadir=/opt/mysqld/data3 --user=mysql
编辑参数文件my.cnf
cp my.cnf my.cnf.bak
加入如下内容
[mysqld_multi]
mysqld = /opt/mysql/bin/mysqld_safe
mysqladmin= /opt/mysql/bin/mysqladmin
user = test //这个用户和密码是用来关闭mysql服务的
password= test
[mysqld3306]
内容与mysql标签下的一致,稍作修改
主要更改,端口号,socket文件,数据目录
加入一个参数pid-file =/tmp/mysql3306.pid
[mysqld3307]
[mysqld3308]
使用mysql_multi启动多实例:
./bin/mysqld_multi --defaults-file=./my.cnf start 3306
./bin/mysqld_multi --defaults-file=./my.cnf start 3307
./bin/mysqld_multi --defaults-file=./my.cnf start 3308
连接mysql:
mysql -S ./mysql3306.sock
mysql -S ./mysql3306.sock
mysql -S ./mysql3306.sock
关闭mysql
./bin/mysqld_multi --defaults-file=./my.cnf stop 3308 此时是不成功的,因为没有test这个用户,所以需要创建
1.使用socket文件方式登录mysql -S /tmp/mysql3308.sock
2.grant shutdown on *.* to test@localhost identified by 'test' with grant option;
show grants for test@localhost
在使用./bin/mysqld_multi --defaults-file=./my.cnf stop 3308 就可以关闭mysql实例了
日志文件:./mysqld_multi.log
使用mysqld_multi来启动mysql还有一种方法,可以一次启动多个实例
./bin/mysqld_multi --defaults-file=./my.cnf start 3306-3308