linux下如何在一台机器上安装多个mysql实例
最近再做个mysql一从多主的配置,需要在一台机器上安装多个mysql。
起先是按照复制了多了mysql 同时起,在琢磨如何做启动脚本的时候发现support-files目录下有个mysqld_multi.server文件,一查发现原来是现成的多实例管理工具。
首先得新建个data目录给新的实例,可以把原来的data目录复制个新的 只需要mysql库,也可以用工具部属个
1 | ./scripts/mysql_install_db --basedir=/usr/local/mysql3307 --datadir=/mysql/mysql3307/data --user=mysql |
然后修改下my.cnf
主要增加
1 2 3 4 5 6 | [mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin user = shutdown password = 123456 log = /mysql/mysqld_multi.log |
然后把原来的 [mysqld] 改为 [mysqld1]
在新增新的实例配置
1 2 3 4 5 6 | [mysqld2] port = 3307 socket = /tmp/mysql3307.sock datadir = /storage/mysql/data3307 ............ ............ |
然后把 mysqld_multi.server 做成启动服务
1 2 3 4 5 6 | cp ./support-files/mysqld_multi.server /etc/rc.d/init.d/mysqld chown root:root /etc/rc.d/init.d/mysqld chmod 755 /etc/rc.d/init.d/mysqld chkconfig --add mysqld chkconfig --level 3 mysqld on chkconfig --level 5 mysqld on |
启动和关闭全部mysql实例
启动:service mysqld start
关闭:service mysqld stop
对单台数据库的启动和关闭
启动: service mysqld start 1
关闭: service mysqld stop 1
也可以同时启动和关闭多个数据库实例
启动: service mysqld start 1-2
关闭: service mysqld stop 1-2
如果启动的时候提示出错信息:
WARNING: my_print_defaults command not found.
Please make sure you have this command available and
in your path. The command is available from the latest
MySQL distribution.
ABORT: Can’t find command ‘my_print_defaults’.
This command is available from the latest MySQL
distribution. Please make sure you have the command
in your PATH.
先添加
export PATH=/usr/local/mysql/bin:$PATH
然后在启动mysql