您的位置:首页 > 数据库 > MySQL

mysql主从配置(freebsd+mysql5.5.13)

2012-09-07 16:31 344 查看
mysql主从,可以使提高数据库的安全性,也便于实现负载均衡,更有利于后期拓展维护,这个配置绕不过去,今天做了一次尝试,遇到一些曲折,最终还是顺利的完成了,这里做一些记录和整理,存档,也希望能给更多朋友带来一些帮助(其实这个活儿其实一点也不难)

环境:freebsd8.2+mysql5.5.13/freebsd9.0+mysql5.5.24
基础:两台机子192.168.1.130 | 192.168.1.131;虚拟机上克隆的,初始环境除了ip不一样,其他完全一致,数据库已有数据库和数据。
1、配置文件:
主:
server-id = 1(主数据库一般都是id为1)

log-bin=mysql-bin (必须的)

binlog_format=mixed (必须的,推荐类型为mixd)

expire_logs_days=5 (为避免日志文件过大,设置过期时间为5天)

binlog-ignore-db = mysql (忽略同步的文件,也不记入二进制日志,可列多行)

binlog-ignore-db = information_schema

replicate-do-db = test (需要同步的文件,记入二进制日志,可列多行)
从:
server-id = 2

log-bin=mysql-bin

binlog_format=mixed

expire_logs_days=5

注1:MySQL进行主从复制是通过二进制的日志文件来进行,所以我们必须开启MySQL的日志功能,即我们上面的log-bin,同时每一台数据库服务器都需要指定一个唯一的server-id,通常主数据库服务器我们指定为1。
注2:Mysql5.5版本以上不再支持master的用法,比如5.1中可用的(master-user = repl;master-password = repl;master-port = 3307)这样的语法已经失效了,如果你使用了,还会报错。(我在这里载了跟头,检查mysql日志/usr/local/db/mysql/ 127.0.0.1.err——您的路径也许会稍有不同——才发现错误)如果你不小心配置了这些参数,MySQL服务器将无法正常启动

错误提示为:[ERROR] /usr/local/mysql/bin/mysqld: unknown variable ‘master-host=192.168.1.130’,正确的办法如上文所写。
配置完成之后,将主从两机的mysql服务重新启动一下。
2、Mysql主(1.130),执行:GRANT replication slave on *.* to 'slave' @ '192.168.1.131' IDENTIFIED BY 'slave777'(授予slave账号对所有数据库享有slave权限,密码为slave777);
3、查看Mysql主 的状态:执行:show master status;这时会看到master数据库所处的位置,记录下来:
show master status;
| File | Position |
| mysql-bin.000011 | 189 |
4、Mysql从:
执行:slave stop;
执行:change master to master_host='192.168.1.130', master_port=3306, master_user=’slave’, master_password=’slave777’, master_log_file=’mysql-bin.000011′, master_log_pos=189;
执行:slave start;
5、查询slave的状态:mysql> show slave status \G;看下slave的状态:
Master_Log_File: mysql-bin.000011 (和主mysql一致)

Read_Master_Log_Pos: 189 (和主mysql一致)

Slave_IO_Running: Yes (读写)

Slave_SQL_Running: Yes (数据库状态)
还要注意状态中是否有error,如果没有的话,就差不多了。
6、测试数据库是否能够同步:略;
7、如果Slave复制失败,你可以根据错误信息进行修正,然后执行
mysql> slave stop;

mysql> slave start;

就可以把原来应该复制过来的数据都复制过来
8、几个常用的命令:
Slave start; --启动复制线程

Slave stop; --停止复制线程

Reset slave; --重置复制线程

Show slave status; --显示复制线程的状态

Show slave status\G; --显示复制线程的状态(分行显示)

Show master status\G; --显示主数据库的状态(分行显示)

Show master logs --显示主数据库日志,需在主数据库上运行

Change master to; --动态改变到主数据库的配置

Show processlist --显示有哪些线程在运行
参考资料
1、MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
2、FreeBSD下配置Mysql主从复制
3、MySQL主从复制基本实验
4、mysql replication 基本原理,mysql主从配置原理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  主从 mysql mysql5.5.13