同一机器运行多 mysql 服务器测试笔记(2012-07-11)

本文从最基础的启动操作开始来学习如何在同一机器运行多 mysql 服务器。

一、最简单的 mysqld 服务启动

注:
以下直接使用 mysqld 程序启动仅作为例子说明,在 unix 系统中,官网推荐使用 mysqld_safe 进行启动:
mysqld_safe是在Unix或是NetWare系统推荐使用来启动MySQL服务器的方法。 mysqld_safe添加了许多安全的特征,例如,当发生错误时重新启动服务器,并且可以将运行时的信息写入错误日志文件。等等

1. 如下,仅使用最基本的参数进行启动:

  1. <路径>/mysqld--port=<端口>--datadir=<数据目录>--user=<启动用户>&
2. 如果把参数配置到配置文件中,则可以使用的配置文件进行启动,默认配置文件为 my.ini/my.cnf,如果不使用默认文件,则需要指定
如有如下最简单配置文件 test.cnf:

[mysqld]
port = <端口>
datadir = <数据目录>
user = <启动用户>

使用如下命令行进行启动:

<路径>/mysqld--defaults-file=<路径>/test.cnf&


二、下面开始进入多 mysqld 启动
1.
多服务执行时,首先要保证端口不冲突,这是基本要求;另外官网特别声明不建议使用相同的数据目录;其次需要配置不同的 sock 文件以便一些管理工具(如 mysqladmin)可以连接进行操作
2. 根据上述说明,如下两句语句可以以端口一和端口二开启两个 mysqld 服务:

<路径>/mysqld--port=<端口一>--datadir=<数据目录一>--user=<启动用户>--socket=<socket 文件一>&
<路径>/mysqld--port=<端口二>--datadir=<数据目录二>--user=<启动用户>--socket=<socket 文件二>&

这时候可以使用如下语句从本机连接进行连接(从远程机器连接则使用端口即可):
mysql -u<用户> -p -S <socket 文件一/二>

使用如下语句进行管理:
mysqladmin -u<用户> -p -S <socket 文件一/二> <命令>

3. 使用配置文件则和前述一样操作,仅是新增加 socket 的配置即可,制作两个配置文件 test1.cnf 和 test2.cnf,文件内容如下:

test1.cnf

[mysqld]
port = <端口一>
datadir = <数据目录一>
user = <启动用户一>
socket = 

test2.cnf

[mysqld]
port = <端口二>
datadir = <数据目录二>
user = <启动用户二>
socket = 

使用如下命令行进行双 mysqld 服务的启动:
<路径>/mysqld --defaults-file=<路径>/test1.cnf &
<路径>/mysqld --defaults-file=<路径>/test2.cnf &

三、使用 mysqld_multi 进行多 mysqld 实例的管理
1.
上面已经了解了如何手工执行和管理双 mysqld 服务,mysql 提供了一个管理多服务器的工具—— mysqld_multi。使用很简单
2.  把上述启动双 mysqld 服务的配置文件合并到一个配置文件中,并给段名 mysqld 后加上数字编号;新增加 mysqld_multi 段,配置一些 mysqld_multi 使用的配置,如 mysqld_safe、mysqladmin 程序的路径,及运行此二程序所用的数据库用户及密码(注意:此用户需要有启动和关闭数据库的权限,用户如果没有配置密码,则不需要指定)

示例如下 multi_test.cnf:

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = mysql
password = xxxx


[mysqld1]
port = <端口一>
datadir = <数据目录一>
user = <启动用户一>
socket =


[mysqld2]
port = <端口二>
datadir = <数据目录二>
user = <启动用户二>
socket = 

3. 执行如下语句即可进行双 mysqld 服务的维护了
# 开启 mysqld1
mysqld_multi --config-file=<路径>/multi_test.cnfstart 1


# 关闭 mysqld1
mysqld_multi --config-file=<路径>/multi_test.cnf stop 1


# 开启 mysqld1 和 mysqld2
mysqld_multi --config-file=<路径>/multi_test.cnfstart 1,2


# 关闭 mysqld1 和 mysqld2
mysqld_multi --config-file=<路径>/multi_test.cnf stop 1,2


# 开启编号为 1-2 之间的所有 mysqld (如果有多个,如五个,就比用逗号格式简单了)
mysqld_multi --config-file=<路径>/multi_test.cnfstart 1-2


# 关闭编号为 1-2 之间的所有 mysqld (如果有多个,如五个,就比用逗号格式简单了)
mysqld_multi --config-file=<路径>/multi_test.cnf stop 1-2





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值