多实例启动文件的启动MySQL服务实质:
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &
mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &
多实例启动文件的停止MySQL服务实质:
mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown
mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown 平滑停止
9,授权MySQL用户,和组管理整个多实例目录
chown -R mysql.mysql /data
10,配置MySQL全局环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
source /etc/profile
11,开始初始化数据库
cd/usr/local/mysql/scripts/
./mysql_install_db --user=mysql --datadir=/data/3306/data/ --basedir=/usr/local/mysql/
./mysql_install_db --user=mysql --datadir=/data/3307/data/ --basedir=/usr/local/mysql/
什么初始化数据库?
a,初始化的主要目的就是创建基础的数据库文件,例如生成MySQL的库表
b,初始化后,产看目录,可以看到一些表文件
12,启动| 停止 MySQL服务
如果有脚本,则使用脚本启动
/data/3306/mysql start
/data/3307/mysql start
如果没有脚本,则使用一下启动
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &
mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &
如果没有脚本,则使用一下启动停止
mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown
mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown 平滑停止|
13,检查
登陆:
mysql -S /data/3306/mysql.sock
管理的话,在本地都是采用 -S /data/3306/mysql.sock,如果在远程可以通过不同的端口连接上去坐管理操作。其他的和单实例的管理没什么区别!
##############################################
再来看第二种通过官方自带的mysqld_multi来实现多实例实战:
这里的mysql安装以及数据库的初始化和前面的步骤一样,就不再赘述。
mysqld_multi的配置
vim /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = admin
password = password
[mysqld1]
#general
basedir = /usr/local/mysql/
datadir = /data/3306/data/
socket = /data/3306/mysql.sock
user = mysql
port = 3306
server_id = 1
log-error = /data/3306/
pid = /data/3306/
#binlog
log-bin = /data/3306/mysql-bin
sync-binlog = 1
#InnoDB
innodb_flush_log_at_trx_commit
innodb_support_xa = 1
#other
character_set_server = utf8
default_storage_engine =InnoDB
ft_min_word_len = 1
open_files_limit = 65535
auto-increment-increment = 10
auto-increment-offset = 1
log_slave_updates=1 允许备库将其重放的事件也记录到自身的二进制日志中
read_only=0 阻止任何没有特权权限的线程修改数据
skip_slave_start
[client]
socket = /data/3306/mysql.sock
port = 3306
[mysqld2]
#general
basedir = /usr/local/mysql/
datadir = /data/3307/data/
socket = /data/3307/mysql.sock
user = mysql
port = 3307
server_id = 2
log-error = /data/3307/
pid = /data/3307/
#binlog
log-bin = /data/3307/mysql-bin
sync-binlog = 1
#InnoDB
innodb_flush_log_at_trx_commit
innodb_support_xa = 1
#other
character_set_server = utf8
default_storage_engine =InnoDB
ft_min_word_len = 1
open_files_limit = 65535
auto-increment-increment = 10
auto-increment-offset = 1
log_slave_updates=1 允许备库将其重放的事件也记录到自身的二进制日志中
read_only=0 阻止任何没有特权权限的线程修改数据
skip_slave_start
[client]
socket = /data/3307/mysql.sock
port = 3307
[mysql]
no-auto-rehash
prompt=\\u@\\d \\R:\\m>
[mysqld_safe]
open-files-limit = 8192