在一台服务器安装多个MySQL数据库实例



一台服务上已经安装了mysql实例,可通过mysqld_multi命令新增实例

1.假设该服务器上有一原有mysql实例,其basedir为/usr/local/mysql, 其数据目录为/usr/local/mysql/data,配置文件为/etc/my.cnf

# mkdir /opt/mysql3308

# cp –rfp /usr/local/data/mysql /opt/mysql3308/

# 假设这个新建的实例其数据目录放在/opt/mysql3308

因测试原因,将原有mysql一实例的mysql数据库拷贝到/opt/mysql3308下,这样此新增实例就不需要运行mysql_install_db这一步了。

# chown –R mysql:mysql /opt/mysql3308

# vi /etc/my.cnf

在文件的一开头,进行如此设置,保存退出.

[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld_safe

mysqladmin = /usr/local/mysql/bin/mysqladmin

user=root 

password=12345678          

# 这里的user password为这台服务器中各mysql实例有权限关闭该实例的用户与密码.

若各实例的root用户不设置密码,那么这里的user password这两行就不需要书写.

若各实例的root用户设置密码,那么各实例中配置的这个user password就必须一致,不然不一致的实例就会通过mysqld_multi关闭不成功

log = /usr/local/mysql/data/mysqld_multi.log



[mysqld2]              # 服务器中原先存在的实例把原来的 [mysqld] 改为 [mysqld1];新增的实例为[mysqld2],依次下去.

user=mysql

pid-file=/tmp/3308.pid

port=3308

socket=/tmp/mysql3308.sock

basedir=/usr/local/mysql

datadir=/opt/mysql3308

#server-id=3308                     # 此参数server-id在设置数据库主从复制时可以启用

 

# Example MySQL config file for large systems.

#

# This is for a large system with memory = 512M where the system runs mainly

# MySQL.

 

# mysqld_multi start 2

# 启动该新增新例

此时netstat –ntl,应该可以看到3308端口已经启动

ps –ef|grep mysql,应该可以该新增实例的参数。

# ./bin/mysql –uroot –S /tmp/mysql3308.sock  或者 mysql -uroot -P 3308 -p(root密码为原有的实例密码)

# 该命令为连接该数据库实例


问题:执行mysqld_multi start 2 报错

mysqld_mulit my_print_defaults command not found.

解决办法是输入如下命令

 
 [root@localhost /]# export PATH=/usr/local/mysql/bin:$PATH 

但是这只是暂时解决,重启之后失效。永久更改的话修改/etc/profiles文件,添加export PATH=/usr/local/mysql/bin:$PATH保存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值