mysql以多实例的方式,实现一台服务器,运行在不同端口不同数据文件的mysql,它们是相互独立的。
1、关闭原有的默认端口3306的mysql: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_3307这个文件夹的数据
发现一个新实例已经启动起来了.
然后我们启动一下原来的实例:service mysqld restart
然后我们来看看是否启动起来两个实例:
OK,我们发现两个实例两个端口都已经启动