且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Mysql多实例运行

更新时间:2022-10-01 08:54:41


 mysql以多实例的方式,实现一台服务器,运行在不同端口不同数据文件的mysql,它们是相互独立的。
 

1、关闭原有的默认端口3306mysql:service mysqd stop
 

2、拷贝或创建数据文件

#拷贝现有的mysql数据库文件#我的在/var/lib/mysql,拷贝一份至mysql_3307文件夹[root@xuegod63 ~]# cp -r /var/lib/mysql /var/lib/mysql_3307

#创建一个新的空数据库[root@xuegod63 ~]# mkdir /var/lib/mysql_3307[root@xuegod63 ~]# mysql_install_db--datadir=/var/lib/mysql_3307 --user=mysql

3、给数据文件赋予mysql用户与用户组

[root@xuegod63 ~]# chown -R mysql.mysql /var/lib/mysql_3307

4、创建multi的配置cnf文件,用于启动这个mysql实例(如3307)载入执行

[root@xuegod63 ~]# touch /usr/local/my_multi.cnf

文件中写入你想要的配置,如下为典型配置:


[mysqld_multi]

mysqld     = /usr/bin/mysqld_safe

mysqladmin = /usr/bin/mysqladmin

user       = root   

password   = 123456  


[mysqld3307]

socket     = /tmp/mysql_3307.sock

port       = 3307

pid-file   = /var/lib/mysql_3307/3307.pid

datadir    = /var/lib/mysql_3307/

log        = /var/lib/mysql_3307/3307.log

character-set-server    = utf8

user       = mysql

          

 5、启动你的多实例

[root@xuegod63 ~]# mysqld_multi--defaults-extra-file=/usr/local/my_multi.cnf start 3307

6、检查是否启动成功

[root@xuegod63 桌面]# netstat -natup |grep mysql

tcp        0      0 0.0.0.0:3307                0.0.0.0:*                   LISTEN      3450/mysqld         

 

如果没有发现你要的端口号mysql实例,可以检查下/var/lib/mysql_3307/3307.log文件,排除问题

7、设置新的密码

[root@xuegod63 ~]# mysqladmin -uroot -S/tmp/mysql_3307.sock password 123456

8、登入你的新实例

 

[root@xuegod63 ~]#mysql -uroot -S /tmp/mysql_3307.sock -p
Enter password:
123456

Mysql多实例运行
 


再次确认下,你的这个实例,是不是用的mysql_3307这个文件夹的数据

 Mysql多实例运行

 发现一个新实例已经启动起来了.
然后我们启动一下原来的实例:service  mysqld restart

然后我们来看看是否启动起来两个实例:  

Mysql多实例运行 
OK,我们发现两个实例两个端口都已经启动 

本文转自xinsz08の平行时空博客51CTO博客,原文链接http://blog.51cto.com/xinsz08/1915903如需转载请自行联系原作者

维度2018