本文摘自PHP中文网,作者V,侵删。
实现目标
现在需要搭建两台MySQL服务器(一主一从),一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作。
工作流程
主服务器:
开启二进制日志
配置唯一的server-id
获得master二进制日志文件名及位置
创建一个用于slave和master通信的用户账号。
从服务器:
配置唯一的server-id
使用master分配的用户账号读取master二进制日志
启用slave服务。
(免费学习视频教程推荐:mysql视频教程)
准备工作
主从数据库版本最好一样
主从数据库内数据保持一致
主数据库:192.168.244.201 : 3306
从数据库:192.168.244.202 : 3306
开始配置
配置 Master 主服务器
找到主数据库的配置文件my.cnf(Windows中是my.ini),我的在/etc/my.cnf
在[mysqld]部分插入如下两行:
1 2 3 |
|
重启mysql服务
1 |
|
创建用于主从同步的账号/密码
进入MySQL : mysql -u root -p 回车输入密码。
我创建的用户名叫“master_root”密码是“MySql@6688”
【注意:由于之前把密码改成支持简单密码123456的了,导致这里新建用户出现一些问题,说密码不符合策略等,后来干脆我重装mysql,使用默认复杂密码了,就没有这么多问题了。习惯就好其实。】
下面我都用的%,没有写具体ip,你可以自行决定。
1 2 3 4 5 6 |
|
查看master状态,记录二进制文件名(mysql-bin.000001)和位置(154).后面配从库要用。
1 |
|
配置 Slave 主服务器
修改my.cnf 文件
1 |
|
1 2 |
|
重启mysql服务
1 |
|
登录进入mysql,执行同步sql语句(主服务器名,用于主从的用户名,密码,二进制文件名,位置)
1 2 3 4 5 6 |
|
启动slave同步进程
1 |
|
查看slave状态
1 |
|
注意后面不要分号;否则最后一行显示报错如下:
1 |
|
当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。
接下来就可以进行一些验证了,比如在主master数据库的test数据库的一张表中插入一条数据,在slave的test库的相同数据表中查看是否有新增的数据即可验证主从复制功能是否有效,还可以关闭slave(mysql>stop slave;),然后再修改master,看slave是否也相应修改(停止slave后,master的修改不会同步到slave),就可以完成主从复制功能的验证了。
其他相关参数:
master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]可添加修改如下选项:
不同步哪些数据库
1 2 3 |
|
只同步哪些数据库,除此之外,其他不同步
1 |
|
如之前查看master状态时就可以看到只记录了test库,忽略了manual和mysql库。
相关文章教程推荐:mysql教程
以上就是linux下搭建mysql主从服务器的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
mysql中character_length()函数的用法详解
更多相关阅读请进入《Linux》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。