越简单越好!

freebsd7.1下mysql主从配置

发表于 2009-07-21 15:38 | 1420次阅读 0次点赞   Freebsd

ports安装 my.cnf 默认路径 /usr/local/share/mysql/

#cp my-small.cnf /etc/my.cnf

编辑my.cnf
#ee /etc/my.cnf

主库设置
[mysqld]
#serverid和辅库不同即可
server-id = 1
#设定不同步的数据库,这些库的修改不会记录到日志,可以添加多行
binlog-ignore-db = mysql
#设定记录的库,可以添加多行
binlog-do-db = test
#主库二进制日志文件名的前缀
log-bin=mysql-testsyn-bin


启动mysql
创建用户testsyn.拥有replication slave权限
grant replication slave on *.* to "testsyn"@"192.168.200.%" identified by 'testsyn' with grant option;

查看主库状态:
show master status;
显示类似于这样:
+--------------------------+----------+--------------+------------------+
| File                     | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------------+----------+--------------+------------------+
| mysql-testsyn-bin.000001 |      748 | test         | mysql            |
+--------------------------+----------+--------------+------------------+

从库设置
[mysqld]
server-id = 2
master-host = 192.168.200.11
master-user = testsyn
master-password = testsyn
master-port = 3306
#重试间隔时间
master-connect-retry = 5
#同步db  
replicate-do-db = test

查看辅库状态:
show slave status;
start slave;

在主库192.168.200.11上:
create table `test`.`users`( `username` varchar(200) , `password` varchar(200));
insert into users (username,password) values ('test1','test1');

辅库上的users表里也相应的有了数据。

查看主库二进制日志文件内容:
show binlog events;

注意:
主辅库同步主要是通过二进制日志来实现同步的。
在启动辅库的时候必须先把数据同步,并删除日志目录下的:master.info文件。因为master.info记录了上次要连接主库的信息,如果不删除,即使my.cnf里进行了修改,也不起作用。因为读取的还是master.info文件里的信息。

从数据库常用命令
Slave start; --启动复制线程
Slave stop; --停止复制线程
Reset slave; --重置复制线程
Show slave status; --显示复制线程的状态
Show slave statusG; --显示复制线程的状态(分行显示)
Show master statusG; --显示主数据库的状态(分行显示)
Show master logs --显示主数据库日志,需在主数据库上运行
Change master to; --动态改变到主数据库的配置
Show processlist --显示有哪些线程在运行

返回顶部 ^