mysql实例配置_Mysql多实例配置

Mysql多实例配置详解

Mysqld_multi介绍

根据Mysql管理手册中提到:每个Mysql的服务都可为独立的,所以它都调用一个my.cnf中各自不同的启动选项--就是下文中将提到的GNR值,使用不同的端口,生成各自的套接文件,服务的数据库都是独立的.

mysqld_multi是管理多个mysqld的服务进程,这些服务进程程序不同的unix socket或是监听于不同的端口。他可以启动、停止和监控当前的服务状态。

程序在my.cnf(或是在--config-file自定义的配置文件)中搜索[mysqld#]段,"#"可以是任意的正整数。这个正整数就是在下面提及的段序列,即GNR。段的序号做为mysqld_multi的参数,来区别不同的段,这样你就可以控制特定mysqld进程的启动、停止或得到他的报告信息。这些组里的参数就像启动一个mysqld所需要的组的参数一样。但是,如果使用多服务,必须为每个服务指定一个unix socket或端口

Mysqld_multi配置示例

修改数据库配置文件my.cnf:

[mysqld_multi]

mysqld =

/usr/local/mysql/bin/mysqld_safe # 按照你的实际情况来制定路径

mysqladmin =

/usr/local/mysql/bin/mysqladmin

user =

multi_admin #

这个用户不一定非要用mysql ,只要这个用户能启动和关闭mysql就够了

password = multipass

log = /usr/local/mysql/log/multi.log

[mysqld1] #

第一个mysql进程

port = 3306 # 指定端口为3306

socket =

/tmp/mysql3306.sock #

指定mysql1 的sock

pid-file =

/tmp/mysql3306.pid #

指定mysql1的pid文件

datadir =

/mnt/mysql/var1 #

为其单独指定数据存放路径

general_log =

1

general_log_file =

/mnt/mysql/mysql3306.log # 单独指定log文件

skip-name-resolve

character-set-server = utf8

back_log = 50

max_connections = 2

max_connect_errors = 32

max_allowed_packet = 16M

table_cache = 2048

binlog_cache_size = 1M

max_heap_table_size = 64M

tmp_table_size = 64M

.......

[mysqld2] #

第二个mysql进程

port =

3307 #

指定端口为3307

socket =

/tmp/mysql3307.sock #

指定mysql2 的sock

pid-file =

/tmp/mysql3307.pid # 指定mysql1的pid文件

datadir =

/mnt/mysql/var2 #

为其单独指定数据存放路径

general_log = 1

general_log_file =

/mnt/mysql/mysql3307.log #

单独指定log文件

server-id = 2

skip-name-resolve

character-set-server = utf8

back_log = 50

max_connections = 2

max_connect_errors = 32

max_allowed_packet = 16M

table_cache =

2048

binlog_cache_size = 1M

max_heap_table_size = 64M

tmp_table_size = 64M

.......

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[isamchk]

key_buffer = 512M

sort_buffer_size = 512M

read_buffer = 8M

write_buffer = 8M

[myisamchk]

key_buffer = 512M

sort_buffer_size = 512M

read_buffer = 8M

write_buffer = 8M

[mysqlhotcopy]

interactive-timeout

[mysqld_safe]

open-files-limit = 8192

shell> /usr/local/mysql/bin/mysql_install_db

--datadir=/mnt/mysql/var1 --user=mysql

shell> /usr/local/mysql/bin/mysql_install_db

--datadir=/mnt/mysql/var2 --user=mysql

创建mysqld_multi用户

创建用于关闭数据的账号,所以只需要shutdown权限。此账号需在my.cnf里面配置(见my.cnf配置)

shell> GRANT SHUTDOWN ON *.* TO

'multi_admin'@'localhost' IDENTIFIED BY

'multipass';

Mysqld_multi启动、关闭、状态检查

要想调用mysqld_multi,使用下面的语法:

shell> mysqld_multi [options]

{start|stop|report} [GNR[,GNR] ...]

start、stop和report表示你想要执行的操作。你可以在单个服务器或多个服务器上执行指定的操作,取决于选项名后面的GNR 列。如果没有该列,mysqld_multi为选项文件中的所有服务器执行该操作。

每个GNR值代表一个选项组号或组号范围。GNR值应为选项文件中组名末尾的号。例如,组[mysqld17]的GNR为17。要想指定组号的范围,用破折号间隔开第1个和最后1个号。GNR值10-13代表组[mysqld10]到[mysqld13]。可以在命令行中指定多个组或组范围,用逗号间隔开。GNR列不能有空格字符(空格或tab);空格字符后面的内容将被忽略掉。

该命令使用选项组[mysqld1]启动单个服务器:

shell> /usr/local/mysql/bin/mysqld_multi

--defaults-extra-file=/etc/my.cnf start 1

该命令停止多个服务器,使用选项组[mysql8]和[mysqld10]至[mysqld13]:

shell>/usr/local/mysql/bin/mysqld_multi

--defaults-extra-file=/etc/my.cnf stop 8,10-13

或者一下形式关闭单个服务器

shell> mysqladmin -u root -S

/tmp/mysql3306.sock shutdown

该命令查看多个服务器,使用选项组[mysql8]和[mysqld10]至[mysqld13]:

shell>/usr/local/mysql/bin/mysqld_multi

--defaults-extra-file=/etc/my.cnf report 8,10-13

Mysql客户端访问

说明:

任何客户端访问都需要指定访问端口。方才能进入指定数据库服务.否则将使用到Mysql默认的端口(3306)所服务的MYSQL,如:

shell>mysql -uroot -p --protocol=tcp

--port=3306 -h127.0.0.1

shell>mysql -uroot -p --protocol=tcp

--port=3307 -h127.0.0.1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值