MySQL通过两种方式启动多实例

admin 2024-05-15 2402 阅读 0评论

有时候,可能基于成本的考虑,我们希望在单台Linux机器上部署多个MySQL实例,比如用来做异地灾备数据库或者延迟从库。


这一节内容,就来聊一下怎样在一台Linux机器上启动多个实例。

1 分别启动多个实例

1.1 首先安装一个MySQL实例

使用脚本安装MySQL

1.2 复制数据目录和启动脚本

需要停掉之前的MySQL实例:

/etc/init.d/mysql.server stop

复制数据目录:

cp -rf /data/mysql /data/mysql3307

复制启动脚本:

cp /etc/init.d/mysql.server /etc/init.d/mysql3307.server

1.3 修改启动脚本和配置文件

编辑启动脚本

vim /etc/init.d/mysql3307.server

修改

:%s/\/data\/mysql/\/data\/mysql3307/g
lock_file_path="$lockdir/mysql3307"

修改配置文件

vim /data/mysql3307/conf/my.cnf

修改:

:%s/\/data\/mysql/\/data\/mysql3307/g
:%s/mysql.sock/mysql3307.sock/g
:%s/3306/3307/g

1.4 修改属组

chown mysql.mysql /data/mysql3307/ -R

1.5 启动MySQL

/etc/init.d/mysql.server start /etc/init.d/mysql3307.server start

1.6 测试登录两套MySQL

mysql -uroot -p
mysql -uroot -p -P 3307

2 使用mysqld_multi部署多实例

2.1 目录和配置文件准备

创建数据目录

mkdir -p /data/{mysql3311,mysql3312}/data

增加配置文件

mkdir -p /data/mysqld_multi/conf/mkdir /data/mysqld_multi/log/vim /data/mysqld_multi/conf/my.cnf

加入如下内容:

[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log        = /data/mysqld_multi/log/mysqld_multi.log
user = root
pass = martin

[mysqld3311]
socket     = /data/mysql3311/data/mysql3311.sock
port       = 3311
pid-file   = /data/mysql3311/data/mysql3311.pid
datadir    = /data/mysql3311/data/
user       = mysql

[mysqld3312]
socket     = /data/mysql3312/data/mysql3312.sock
port       = 3312
pid-file   = /data/mysql3312/data/mysql3312.pid
datadir    = /data/mysql3312/data/
user       = mysql

2.2 初始化


mysqld --datadir=/data/mysql3311/data/ --user=mysql --initialize
mysqld --datadir=/data/mysql3312/data/ --user=mysql --initialize


2.3 启动多实例


mysqld_multi --defaults-extra-file=/data/mysqld_multi/conf/my.cnf start


2.4 修改所有实例的root密码

登录MySQL


mysql -uroot -p -S /data/mysql3311/data/mysql3311.sock


修改root密码:


alter user user() identified by 'martin';


修改密码之后,查看多实例状态:


mysqld_multi --defaults-extra-file=/data/mysqld_multi/conf/my.cnf report

1715757485143357.png

2.5 关闭和启动其中一个实例

比如我们关闭其中一个实例,执行


mysqld_multi --defaults-extra-file=/data/mysqld_multi/conf/my.cnf stop 3311


再查看一次实例状态


mysqld_multi --defaults-extra-file=/data/mysqld_multi/conf/my.cnf report

1715757580756576.png

在启动关闭的实例


mysqld_multi --defaults-extra-file=/data/mysqld_multi/conf/my.cnf start 3311


2.6 登录多实例的方式


mysql -uroot -p -S /data/mysql3311/data/mysql3311.sock
mysql -uroot -p -S /data/mysql3311/data/mysql3311.sock



喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 2402人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表