为解决MySql数据库的处理高并发的颈瓶,可以采取读写分离和主从复制策略。
下面介绍主从复制的简单实现。
首先准备好两台虚拟机,这里才有VMware虚拟的两台centOS机器。其中Master机器的IP地址是:192.168.124.131,Slave机器的IP地址是:192.168.124.132。我们首先需要把两台机器的防火墙给关上,命令是:service iptables stop 。在线安装mysql数据库,命令:yum -y install mysql-server。
完成安装之后,启动mysql服务:service mysqld start。执行命令:mysqladmin -u root password 'root' 把mysql数据库的密码初始化为root,接下来进入mysql数据库:mysql -u root -p 。进入数据库之后,切换到mysql库,use mysql; 执行select host,user,password from user,把密码为空的记录删除:delete from user where password='',接下来配置mysql可以远程登录,执行update user set host='%' where user='root' limit 1;最后执行语句:flush privileges;
完成上述操作,两台机器的mysql便可以实现远程登录了。 接下来进行Master机器的配置,执行命令:vim /etc/my.cnf,插入如下语句:
server-id=10
log-bin=mysql-bin
再次进入Master机器的mysql数据库,执行:show master status;记录下File字段和position字段的值,待会配置Slave机器的时候需要用到。
接下来进行Slave机器的配置,执行命令:vim /etc/my.cnf ,插入如下语句:
server-id=1
log-bin=mysql-bin
进入Slave机器的Mysql数据库,执行如下语句:
change master to
master_host='Master机器IP',
master_user='Master机器的mysql数据库的用户名',
master_password='Master机器的mysql数据库的密码',
master_log_file='刚刚记录的master机器的File字段的值',
master_log_pos=刚刚记录的master机器的Position字段的值;
接着执行:start slave 语句,再执行show slave status\G 语句,查看slave机器的状态,如果Io_running:yes,sql_running:yes,表明机器配置完成。执行quit,退出slave机器的mysql数据库,最后执行:service mysqld restart命令。
接下来就可以进行主从复制的测试了。