一台server中多个mysql实例
Mysql中的mysqld_multi命令,可用于在一台物理服务器运行多个Mysql服务,这些服务进程使用不同的unix socket或是监听于不同的端口。他可以启动、停止和监控当前的服务状态。
1. 建立Mysql账户,源码安装(你可以在这里指定相应的参数,比如说端口,数据库路径等)
2.初始化数据库,以mysql用户的身份执行Mysql_install_db脚本,对Mysql数据库进行初始化,并修改相关目录的所有权,以便mysql用户可以读写数据库。
可以看到已经生成var目录
3.修改my.cnf配置文件
注释掉老的[client][mysqld],添加以下字段
配置中不同mysql 服务建立各自文件夹和初始数据库等
使用方法:# mysqld_multi [options] {start|stop|report} [GNR[,GNR]…]
start,stop和report是指你想到执行的操作。你可以在单独的服务或是多服务上指定一个操作,区别于选项后面的GNR列表。如果没有指定GNR列表,那么mysqld_multi将在所有的服务中根据选项文件进行操作。
每一个GNR的值是组的***或是一个组的***范围。此项的值必须是组名字最后的数字,比如说如果组名为mysqld17,那么此项的值则为17.如果指定一个范围,使用”-”(破折号)来连接二个数字。如GNR的值为10-13,则指组mysqld10到组mysqld13。多个组或是组范围可以在命令行中指定,使用”,”(逗号)隔开。不能有空白的字符(如空格或tab),在空白字符后面的参数将会被忽略。 (注:GNR值就是我们定义my.cnf中mysqld#中的值,我这里只有1-2).
# /usr/local/mysq/bin/mysqld_multi –-config-file=/etc/my.cnf start 1 只启动 第一个mysql服务,相关文件由my.cnf中mysql1设定.
# /usr/local/mysq/bin/mysqld_multi –-config-file=/etc/my.cnf stop 1 启止 第一个mysql服务
# /usr/local/mysq/bin/mysqld_multi –-config-file=/etc/my.cnf start 1-2, 启动 第1至4mysql服务,其实就是我这里的全部.
# /usr/local/mysq/bin/mysqld_multi --config-file=/etc/my.cnf report 1-2
至此,我们的两个mysql服务就启动了,可以根据需要添加更多的mysql服务,这里我就不在啰嗦了。
在客户端访问通过mysqld_multi启动的mysql服务时,需要指定相应的mysql服务端口
在服务器本机上,还可以通过mysql的socket来指定相应mysql服务
转载于:https://blog.51cto.com/chart/677399