mysql多实例配置方案:
方案一(多配置文件,多启动程序):
mkdir /data/3306/{data,tmp,log}
touch my.cnf
服务文件mysql改一下端口
(1)安装依赖ncurses-devel libaio-devel
(2)配置文件示例
[client]
port=3306
socket=/data/3306/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user=mysql
port=3306
socket=/data/3306/mysql.sock
basedir=/usr/local/mysql
datadir=/data/3306/data
open_files_limit=1024
back_log=600
log-error=/data/3306/log/error.log
slow_query_log=on
slow_query_log_file=/data/3306/log/slow.log
pid-file=/data/3306/mysql.pid
log-bin=/data/3306/log/mysql-bin
server-id=1
[mysqld_safe]
log-error=/data/3306/log/error.log
pid-file=/data/3306/mysql.pid
(3)初始化
chown -R mysql:mysql /data
mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
#新版本建议使用mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql
在初始化时如果--initialize改为--initialize-insecure,则会创建空密码的 root@localhost 账号,否则会创建带密码的 root@localhost 账号
创建出日志文件并更改权限。
(4)多实例启动
mysqld_safe --defaults-file=/data/3306/my.cnf &>/dev/null &
或使用复制过来的mysql启动
登陆:mysql -S /data/3306/mysql.sock
多实例停止
mysqladmin -u root -p"password" -S /data/3306/mysql.sock shutdown
方案二:单一配置文件
(1) 配置文件my_multi.cnf示例
[mysqld_multi]
mysqld=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmin
user=mysql
[mysqld1]
socket=/var/lib/mysql/mysql.sock
port=3306
pid-file=/var/lib/mysql/mysql.pid
datadir=/var/lib/mysql
user=mysql
[mysqld2]
socket=/data/3307/mysql.sock
port=3307
pid-file=/data/3307/mysql.pid
datadir=/data/3307/data
user=mysql
server-id=10
defautlt-storage-engine=innodb
[mysqld3]...
(2)启动方法
mysqld_multi --config-file=/data/mysql/my_multi.cnf {start|stop|report} 1,2,3,4-6,7