MySQL之rpm多实例

环境:linux 64位 centos 6.4

服务器上本来rpm 安装了mysql 5.1,现在想额外开个3307端口的实例。

操作步骤如下:

1、拷贝数据

# cd /var/lib

# cp -R mysql mysql2

# cp  /etc/my.cnf  /etc/my3307.cnf

# nano /etc/my3307.cnf (主要就是修改port,datadir,sock)

[client]
port=3307

[mysqld]
port =3307
datadir=/var/lib/mysql2
socket=/var/lib/mysql2/mysql.sock
user=mysql
key_buffer_size=256M
default-character-set=utf8

2、启动mysql 3307

# /usr/bin/mysqld_safe --defaluts-files=/etc/my3307.cnf --user=mysql &

3、查看启动是否成功

# ps -ef | grep mysql

4、连接mysql

# mysql -uroot -p --port=3307

进入mysql ,但是运行以下命令 show global variables like 'port';  显示的端口号是3306,why??????

但是通过以下这两种方式连接mysql,以下命令 show global variables like 'port';  显示的端口号是正确的,是3307。 why????

# mysql -uroot -p -S /var/lib/mysql2/mysql.sock

# mysql -uroot -p  --protocol=tcp --port=3307

5、多实例启动,mysqld_multi配置实例

Mysqld_multi介绍

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

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

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

(1)、# nano /etc/my.cnf

[mysqld_multi]
mysqld=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmin
user=multi_admin
password=multipass

log=/var/lib/mysql2/multi.log

[mysqld3306]
port=3306
basedir=/usr
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld3307]
port=3307
basedir=/usr
datadir=/var/lib/mysql2
socket=/var/lib/mysql2/mysql.sock
default-character-set=utf8

(2)、创建mysqld_multi用户

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

grant shutdown *.* to 'multi_admin'@'localhost' identified by 'multipass';

(3)、Mysqld_multi启动、关闭、状态检查

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

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);空格字符

后面的内容将被忽略掉。

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

 /usr/bin/mysqld_multi --defaults-extra-file=/etc/my.cnf  start 3307

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

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

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

mysqladmin -u root -S /var/lib/mysql2/mysql.sock shutdown

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

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

6、mysqld_multi 开机自启动

#nano /etc/rc.local  添加以下内容

/usr/bin/mysqld_multi  --defaults-file=/etc/my.cnf start 3306,3307


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过以下步骤在 CentOS/RHEL 系统上使用 yum 安装 MySQL 5.7 多实例: 1. 首先,确保您的系统已经安装了 MySQL Community Repository。如果没有安装,请使用以下命令下载并安装: ``` wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm ``` 2. 安装 MySQL 5.7 的服务器软件包,使用以下命令: ``` sudo yum install mysql-community-server ``` 3. 安装完成后,使用以下命令启动 MySQL 服务并设置开机启动: ``` sudo systemctl start mysqld sudo systemctl enable mysqld ``` 4. 确保 MySQL 服务正在运行: ``` sudo systemctl status mysqld ``` 5. 接下来,我们需要创建多实例所需的配置文件和数据目录。请复制默认配置文件并重命名为新实例的配置文件名。例如,我们创建一个名为 `myinstance1.cnf` 的配置文件: ``` sudo cp /etc/my.cnf /etc/myinstance1.cnf ``` 6. 打开新配置文件并修改相关配置,包括端口号、数据目录、日志文件等。确保每个实例具有唯一的端口号和数据目录。例如,在 `myinstance1.cnf` 中,您可以将端口号更改为 3307,并设置不同的数据目录: ``` sudo nano /etc/myinstance1.cnf [mysqld] ... port = 3307 datadir = /var/lib/mysql-instance1 ... ``` 7. 创建新实例的数据目录,并确保 MySQL 用户具有相应的权限: ``` sudo mkdir /var/lib/mysql-instance1 sudo chown mysql:mysql /var/lib/mysql-instance1 ``` 8. 初始化新实例的数据目录: ``` sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql-instance1 ``` 9. 启动实例MySQL 服务: ``` sudo systemctl start mysqld@instance1 ``` 10. 确保新实例MySQL 服务正在运行: ``` sudo systemctl status mysqld@instance1 ``` 11. 您可以按照相同的步骤创建其他多实例,只需重复第 5 至第 10 步,将配置文件和数据目录命名为不同的实例名称即可。 现在,您已经成功安装和配置了 MySQL 5.7 的多实例。您可以通过不同的端口号连接到每个实例,并使用独立的数据目录管理和操作各自的数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值