Mysqld_multi能夠管理多個幀聽不一樣Unix套接字文件和TCP/IP端口的鏈接的mysqld 進程。它能夠啓動或中止服務器,或報告它們的當前狀態。mysql
便可以管理多個實例。sql
筆者在以前也介紹過使用mysqld_safe啓用多實例的方法,啓動和關閉都指定配置文件,實例間是對立的,互不影響。成功的部署了多個實例主從Replication,今天也介紹下mysql_multi多實例管理,配置簡單,方便管理。shell
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
二、初始化數據庫目錄:
服務器
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,不然查看數據庫目錄是否有權限。 不初始發數據庫目錄,mysql會啓動不了!
socket
三、啓動多實例:ide
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,以此來區分。ui
四、本機登陸Mysql,如3307端口:
spa
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、關閉數據庫實例code
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