实现多个MySQL数据库实例管理,用mysqld_multi!


  本文标签:MySQL数据库实例

  以下的文章主要是向大家介绍的是使用mysqld_multi来对多个MySQL数据库实例进行管理的实际操作流程,MySQL数据库是可以多主一从的来进行实时备份,在google下可以使用mysqld_multi来管理多个MySQL实例  。

  之前有想过在一台服务器上运行多个MySQL实例就可以实现一从多主的master-slave方式的实时备份,今天刚好看到mysqld-multi就动手测试下配置过程如下,

  1. 修改mysql的配置文件my.cnf配置mysqld_multi的选项

  

  1. [mysqld_multi]  
  2. mysqld = /usr/local/mysql/bin/mysqld_safe  
  3. mysqladmin = /usr/local/mysql/bin/mysqladmin  
  4. user = multi_admin 
  5. password = multipass 
  6. log = /usr/local/mysql/etc/mysqld_multi.log 

  2. 创建mysqld_multi的config-file

  1. cat /usr/local/mysql/etc/mysqld_multi.cnf   
  2. [mysqld1]  
  3. socket = /tmp/mysql.sock1  
  4. port = 3306 
  5. pid-file = /usr/local/mysql/var1/localhost.pid  
  6. datadir = /usr/local/mysql/var1  
  7. user = mysql 
  8. [mysqld2]  
  9. socket = /tmp/mysql.sock2  
  10. port = 3307 
  11. pid-file = /usr/local/mysql/var2/localhost.pid  
  12. datadir = /usr/local/mysql/var2  
  13. user = mysql 
  14. [mysqld3]  
  15. socket = /tmp/mysql.sock3  
  16. port = 3308 
  17. pid-file = /usr/local/mysql/var3/localhost.pid  
  18. datadir = /usr/local/mysql/var3  
  19. user = mysql 

  3. 拷贝mysqld_multi.server(在源代码的support-files中)脚本到/usr/sbin

  1. cp /mysql_source/support-files/mysqld_multi.server /usr/sbin 

  4. 编辑/usr/sbin/mysqld_multi.server(添加–config-file=/usr/local/mysql/etc/mysqld_multi.cnf选项)

  1. start )  
  2. "$mysqld_multi" start $2  
  3. ;;  
  4. stop )  
  5. "$mysqld_multi" --config-file=/usr/local/mysql/etc/mysqld_multi.cnf stop $2  
  6. ;;  
  7. report )  
  8. "$mysqld_multi" --config-file=/usr/local/mysql/etc/mysqld_multi.cnf report $2 

  5. 启动多个MySQL数据库实例

  1. mysqld_multi.server start 

  6. 之前在my.cnf设置的user和password是用来关闭数据库实例的,根据配置中的用户名和密码授权该用户shutdown权限

  1. mysql -u root -S /tmp/mysql.sock1 -p  
  2. mysql> grant shutdown on *.* to multi_admin@localhost identified by multipass; 

  7. 关闭所有数据库实例

  1. mysqld_multi.server stop 

  8. 对单台数据库的启动和关闭

  语法:mysqld_multi [options] {start|stop|report} [GNR[,GNR] …]

  如对mysqld1的启动和关闭,可以通过mysqld_multi来操作

  启动: mysqd_multi start 1

  关闭: mysqd_multi stop 1

  也可以同时启动和关闭多个MySQL数据库实例

  启动: mysqd_multi start 1-3

  关闭: mysqd_multi stop 1-3