mysql 多实例常规来讲,主要有二种方案可以实现,这二种方案各有利弊,如下:
1、基于多配置文件
通过使用多个配置文件来启动不同的进程,以此来实现多实例。
优点:逻辑简单,配置简单
缺点:管理起来不方便
2、基于mysqld_multi
通过官方自带的 mysqld_multi 工具,使用单独配置文件来实现多实例
优点:便于集中管理管理
缺点:不方便针对每个实例配置进行定制
本文按第一种基于多配置文件,mysql为redhat6.3系统自带
首先创建目录,并chown mysql
[root@localhost data]# tree -L 2 /data/
/data/
├── mysqld3321
│ └── data
├── mysqld3336
│ └── data
├── mysqld3337
│ └── data
├── mysqld3345
│ └── data
├── mysqld3350
│ └── data
├── mysqld3352
│ └── data
└── mysqld3361
└── data
然后cp /etc/my.cnf /data/mysqld3361/
cd /data/mysqld3361/
mv my.cnf my3361.cnf
vim my3361.cnf
[mysqld]
port=3361
datadir=/data/mysqld3361/data
socket=/data/mysqld3361/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/data/mysqld3361/log/mysqld.log
pid-file=/data/mysqld3361/mysqld.pid
然后cp my3361.cnf /data/mysqld3337/my3337.cnf
vim /data/mysqld3321/my3321.cnf
。。。。。。。。。。。。。
初始化
mysql_install_db --basedir=/usr --datadir=/data/mysqld3361/data --user=mysql
。。。。。。。。。。。。
启动
mysqld_safe --defaults-file=/data/mysqld3361/my3361.cnf &
。。。。。。。。。。。。。。。。。
修改实例3361的root密码,使用mysqladmin命令。如下:
mysqladmin -uroot -p password 111111 -S /data/mysqld3361/mysql.sock