MySQL多实例配置

本文隶属于分类

数据库

推荐文章

广告推荐

技术交流学习或者有任何问题欢迎加群 : 154514123 爱上编程

标签:entos   nal   mysq   unix   里的   linux   top   using   mysqld   

参考文档:https://dev.mysql.com/doc/refman/5.5/en/mysqld-multi.html

MySQL的多实例使用 mysqld_multi 来管理, 使用这个命令来启动、停止、导出实例状态。

Usage: mysqld_multi [OPTIONS] {start|stop|report} [GNR,GNR,GNR...]
or     mysqld_multi [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...]

 

一、环境配置如下:

[[email protected] ~]# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m
[[email protected] ~]# uname -r
2.6.32-642.el6.x86_64
[[email protected] ~]# mysql -V        //使用yum安装
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

 二、my.cnf

可以使用mysql --help,来查看查找MySQL主配置文件的顺序

Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf 

直接使用/etc目录下的my.cnf

[[email protected] ~]# cat /etc/my.cnf

[mysqld_multi]
mysqld     = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user       = multi_admin
password   = my_password
log        = /var/log/mysqld_multi.log

[mysqld3307]
port       = 3307
datadir    = /var/lib/mysql/3307
socket     = /var/lib/mysql/3307/mysql.sock
pid-file   = /var/lib/mysql/3307/mysqld.pid
#user       = unix_user1

[mysqld3308]
port       = 3308
datadir    = /var/lib/mysql/3308
socket     = /var/lib/mysql/3308/mysql.sock
pid-file   = /var/lib/mysql/3308/mysqld.pid
#user       = unix_user1

三、MySQL多实例中每个实例必须使用独立数据文件夹,不允许几个实例共用一个数据文件夹

     在上面的配置文件中设定了二个实例,其datadir分别为/var/lib/mysql/3307与/var/lib/mysql/3308。

     现在分别生成主数据库,如下:   

[[email protected] ~]# mysql_install_db --datadir=/var/lib/mysql/3307 --user=mysql
[[email protected] ~]# mysql_install_db --datadir=/var/lib/mysql/3308 --user=mysql

四、启动与停止

  启动实例:

[[email protected] ~]# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld3307 is not running
MySQL server from group: mysqld3308 is not running
[[email protected] ~]# mysqld_multi start
[[email protected] ~]# mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld3307 is running MySQL server from group: mysqld3308 is running

  当然,也可以启动指定的某个实例,

  使用mysqld_multi start 3307,这里的3307是在my.cnf文件中[mysqld3307],mysqld后面的一个整数指定的。

 

停止实例:

  停止实例需要在每个实例的主数据库中生成一个mysql用户,

  用户名与密码指定在my.cnf中[mysqld_multi]段中的user与password。

  现在先生成root用户密码:  

[[email protected] ~]# mysqladmin -S /var/lib/mysql/3307/mysql.sock -u root password ‘root‘
[[email protected] ~]# mysqladmin -S /var/lib/mysql/3308/mysql.sock -u root password ‘root‘

   登陆mysql,生成用户  

[[email protected] ~]# mysql -u root -P 3307 -h 127.0.0.1 -p
mysql> grant SHUTDOWN on *.* to [email protected] identified by ‘my_password‘;
mysql> flush privileges;

此时就可以使用 mysqld_multi stop 或 mysqld_multi stop [GNR] 来关闭实例。

 

MySQL多实例配置

标签:entos   nal   mysq   unix   里的   linux   top   using   mysqld   

原文:http://www.cnblogs.com/g120992880/p/MySQL.html

技术交流学习或者有任何问题欢迎加群 : 154514123 爱上编程

广告推荐

讨论区