Mysql利用mysql_multi配置一台主机多个实例

在MySQL官方帮助文档中,详细记录中Mysql的启动方式,有mysqld_safe、mysql.server、mysql_multi这三种。关于mysql_multi的介绍:

成都创新互联是少有的成都网站设计、做网站、营销型企业网站、小程序开发、手机APP,开发、制作、设计、卖链接、推广优化一站式服务网络公司,2013年至今,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评

Mysqld_multi可以管理多个帧听不同Unix套接字文件和TCP/IP端口的连接的mysqld 进程。它可以启动或停止服务器,或报告它们的当前状态。

即可以管理多个实例。

笔者在之前也介绍过使用mysqld_safe启用多实例的方法,启动和关闭都指定配置文件,实例间是对立的,互不影响。成功的部署了多个实例主从Replication,今天也介绍下mysql_multi多实例管理,配置简单,方便管理。

1、首先配置my.cnf文件,列出我的Mysql配置文件:


  • [mysqld_multi]

  • mysqld = /usr/local/mysql/bin/mysqld_safe #根据自己的mysql目录配置

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

  • [mysqld1]

  • port = 3306

  • socket = /tmp/mysql3306.sock

  • basedir=/usr/local/mysql

  • datadir=/mysqldata/data3306

  • log-slow-queries=slow_query.txt

  • long_query_time=2

  • skip-locking

  • skip-name-resolve

  • skip-innodb

  • max_allowed_packet = 256M

  • query_cache_size=256M

  • max_connections=2000

  • max_connect_errors=10000

  • key_buffer_size=6000M

  • read_buffer_size=32M

  • read_rnd_buffer_size = 32M

  • myisam_sort_buffer_size=512M

  • tmp_table_size=1024M

  • old-passwords

  • interactive_timeout=60

  • wait_timeout=60

  • connect_timeout=60

  • table_cache=8192

  • thread_cache_size=512

  • sort_buffer_size=128M

  • back_log = 500

  • thread_concurrency=48

  • expire_logs_days=10

  • log-bin=mysql-bin

  • [mysqld2]

  • port = 3307

  • socket = /tmp/mysql3307.sock

  • basedir=/usr/local/mysql

  • datadir=/mysqldata/data3307

  • log-slow-queries=slow_query.txt

  • long_query_time=2

  • skip-locking

  • skip-name-resolve

  • skip-innodb

  • max_allowed_packet = 256M

  • query_cache_size=256M

  • max_connections=2000

  • max_connect_errors=10000

  • key_buffer_size=6000M

  • read_buffer_size=32M

  • read_rnd_buffer_size = 32M

  • myisam_sort_buffer_size=512M

  • tmp_table_size=1024M

  • old-passwords

  • interactive_timeout=60

  • wait_timeout=60

  • connect_timeout=60

  • table_cache=8192

  • thread_cache_size=512

  • sort_buffer_size=128M

  • back_log = 500

  • thread_concurrency=48

  • expire_logs_days=10

  • log-bin=mysql-bin

  • [mysqldump]

  • quick

  • max_allowed_packet = 512M

  • [mysql]

  • no-auto-rehash

  • [isamchk]

  • key_buffer = 512M

  • sort_buffer_size = 32M

  • read_buffer = 2M

  • write_buffer = 2M

  • [myisamchk]

  • key_buffer = 512M

  • sort_buffer_size = 32M

  • read_buffer = 2M

  • write_buffer = 2M

  • [mysqlhotcopy]

  • interactive-timeout

  • 2、初始化数据库目录:


  • shell>cd /usr/local/mysql/;./scripts/mysql_install_db --datadir=/mysqldata/data3307/ --user=mysql

  • shell>cd /usr/local/mysql/;./scripts/mysql_install_db --datadir=/mysqldata/data3306/ --user=mysql

  • 初始话成功,会提示OK,否则查看数据库目录是否有权限。

    3、启动多实例:


  • shell>/usr/local/mysql/bin/mysqld_multi start 1-2


  • shell>/usr/local/mysql/bin/mysqld_multi start 1

  • shell>/usr/local/mysql/bin/mysqld_multi start 2

  • 注意这里的1、2对应my.cnf配置文件 mysqld1、mysqld2,以此来区分。

    Mysql利用mysql_multi配置一台主机多个实例

    4、本机登录Mysql,如3307端口:


  • shell>mysql -S /tmp/mysql3307.sock

  • mysql> show variables like 'datadir';

  • +---------------+----------------------+

  • | Variable_name | Value |

  • +---------------+----------------------+

  • | datadir | /mysqldata/data3307/ |

  • +---------------+----------------------+

  • 1 row in set (0.00 sec)

  • 4、关闭数据库实例


  • shell>/usr/local/mysql/bin/mysqld_multi stop 1-2


  • shell>/usr/local/mysql/bin/mysqld_multi stop 1

  • shell>/usr/local/mysql/bin/mysqld_multi stop 2

  • 当前文章:Mysql利用mysql_multi配置一台主机多个实例
    文章出自:http://ybzwz.com/article/gsicoo.html