原文地址:
http://blog.chinaunix.net/uid-25266990-id-3451640.html
在Mysql官方帮助文档中,详细记录中Mysql的启动方式,有mysqld_safe、mysql.server、mysql_multi这三种。关于mysql_multi的介绍:
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配置文件
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