在一台服务器安装多个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

# 启动该新增新例

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

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

# ./bin/mysql –uroot –S /tmp/mysql3308.sock

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

相关内容