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