UNLOCK TABLES;
3.配置从服务器
vi /etc/my.cnf 在【mysqld】下面添加server-id =2保存退出,重启mysql服务
登录本机的mysql 然后执行下面命令:
change master to master_host='192.168.1.129',master_user='backup',master_password='123123',master_log_file='mysql-bin.000008',master_log_pos='708';
master_host:主服务器的IP
master_user:配置主服务器时建立的用户名
master_password:用户密码
master_log_file,master_log_pos则为主服务器上面显示的日志名和位置
接下来执行启动从服务命令: start slave
ok.到此配置基本结束。查看一下配置的情况:
在从服务器上执行:show slave status\G;
看到slave_io_running:yes和slave_sql_running:yes 就表示从服务器配置成功了。
接下来我们来试着插入数据,之前建立的test数据库为空,现在我们创建一个表emp
create table emp(
id int primary key auto_increment,
name varchar(64) not null,
grade tinyint,
email varchar(64) not null,
salary float
);
然后插入数据:insert into emp(id,name,grade,email,salary) values(1,mike,mike@122.com,3000);
为了大量插入数据,蠕虫复制:insert into emp(name,grade,email,salary) select name,grade,email,salary from emp;
查看一下主服务器的数据:
接下来进入从服务器,查看一下test数据库中的数据:
OK,两边的数据一致,表明主从服务器的确设置成功。
ps:在配置过程中可能会遇到虚拟机之间无法相互远程访问的情况,即无法建立主从复制关系。这里问题的症结在于主服务器防火墙的设置:
解决方法:
切换到root用户
打开iptables的配置文件:vi /etc/sysconfig/iptables 红色划线部分为添加的mysql3306端口(明显只放行了ssh的22端口)
添加后保存退出。记得重启服务:service iptables restart
有了主从复制少不了读写分离,读写分离优良中实现的方式:
1,mysql-proxy或其他工具在硬件上通过设置实现。
2,通过程序实现,通过路由对‘读操作’和‘写操作’分别指向不同的方法,对应不同的数据库。
相比而言,第二种是比较好的方法。