mysql数据库主从同步

花了2天,google了无数才配出来,见笑。

[b]环境[/b]
主机:freeBSD8.2 + myslq5.1 ip:192.168.1.240(vm)
从机:freeBSD8.2 + mysql5.1 ip:192.168.1.121(vm)


[b]主机设置:[/b]
创建从机访问帐号
flush privileges;(防止出现ERROR 1290(HY000)错误)
GRANT REPLICATION SLAVE ON *.* TO '帐号'@'主机' IDENTIFIED BY '密码';

修改my.cnf
server-id=1 #主机id
log-bin=mysql-bin #同步文件类型
binlog-do-db=backtest #同步数据库(可多行)
binlog-ignore-db=mysql #不同步数据库(可多行)

备份需要同步的数据库(备份之后不可再写入数据)

查看主机信息
show master status;

[b]从机设置:[/b]
导入主机备份的数据库

停止从机mysql

修改my.cnf
server-id = 2 #从机id(不可重复)
master-host=192.168.1.240 #主机ip
master-user=backuser #备份用户
master-password=root #密码
master-port=3306 #端口
replicate-do-db=backtest #备份数据库
replicate-ignore-db=mysql #不备份数据库
master-connect-retry=60 #主机断线后重新连接的时间
#character-set-server=utf-8 #中文字符集

打开从机mysql
停止slave服务
slave stop
根据主机信息设置从机信息
CHANGE MASTER TO
MASTER_HOST='192.168.1.240',
MASTER_USER='backuser',
MASTER_PASSWORD='root',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=264;
打开slave服务
slave start

[img]http://dl.iteye.com/upload/attachment/0063/2799/1a553917-aa6f-31c1-9d22-04dc9a75a81c.gif[/img]

查看从机信息
show slave status\G
显示信息如下
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.240
Master_User: backuser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 264
Relay_Log_File: freeBSD-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: backtest
Replicate_Ignore_DB: mysql
…………………………

[img]http://dl.iteye.com/upload/attachment/0063/2797/4d750ab6-50c1-3b35-b9f4-a0c669145f3f.gif[/img]

如果有
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
说明配置成功

[b]ps:配置时遇到的问题[/b]
修改my.inf时报Warning: World-writable config file '/etc/my.cnf' is ignored
原因:my.inf权限太高
处理:权限不可设成777,只能设成755

用mysql远程工具链接数据库报错
原因:没有开放远程链接功能
处理:在mysql里面输入如下命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY' password' WITH GRANT OPTION;

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
原因:用户表中root密码为空
处理:先停止mysql,转入安全模式,修改root密码
#/usr/local/etc/rc.d/mysql-server stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and

host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。
mysql> FLUSH PRIVILEGES;
mysql> quit
# /usr/local/etc/rc.d/mysql-server restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>

创建同步帐号时出现ERROR 1290(HY000)错误
原因:不明
处理:先flush privileges; 再用grant all 命令。
flush privileges;
GRANT REPLICATION SLAVE ON *.* TO 'backuser'@'192.168.1.121' IDENTIFIED BY 'root';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值