mysql主从数据库配置(主服务器某库,从服务器某些表)

来源:互联网 发布:js获取HTML对象 编辑:程序博客网 时间:2024/06/01 18:04

一、主库配置
1.修改my.cnf文件 vi /ect/my.cnf (一般linux下在这里)
在my.cnf 文件中加入
log_bin=/usr/local/mysql/binlog/mysql-bin #后面接的是日志存放路径(目录必须存在,不存在手动创建 权限777)
#过滤库
binlog_ignore_db=mysql
binlog_ignore_db=infomation_schema
binlog_ignore_db=performance_schema
(三句的意思:备份时忽略 mysql…那3个默认的库)
#指定同步的库
binlog-do-db=mydata
重启mysql(service mysqld restart)

2.在msqyl下执行(mysql -uroot -p)
添加复制用户:
GRANT REPLICATION SLAVE ON *.* to ‘user’@ ‘%’ identified by ‘password’;
flush privileges; 更新操作

二、从库配置
1.修改my.cnf文件 vi /ect/my.cnf (一般linux下在这里)
在my.cnf 文件中加入
server_id=2
#指定更新表
replicate-wild-do-table=mydata.db_user
重启mysql(service mysqld restart)

2.在msqyl下执行(mysql -uroot -p)
从库与主库连接 change master to
master_host=’192.168.1.199’,master_user=’root’,master_password=’root’,master_log_file=’mysql-bin.000001’,master_log_pos=154;
#启动主从服务
start slave;
#查看从服务器是否启动成功
show slave status;
如:
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
均为Yes表示成功

reset slave ; 重置slave状态.
stop slave; 暂停slave状态;

三、额外篇
1.进入mysql执行(查看和重置日志)
show master logs; 这个查看你的binlog文件当前到了那个点
如果不是从0001开始的,重置一下日志 语句: reset master;

2.linux下执行(导出日志文件成sql格式)
cd进入mysql-bin.000002日志的文件夹
mysqlbinlog mysql-bin.000002 > /tmp/back.sql 可以通过这个语句将日志导出sql文件 (mysqlbinlog执行失败的话可能是路径问题 如:/usr/local/mysql/bin/mysqlbinlog)
导出mysql文件报错:(mysqlbinlog mysql-bin.000063 > back.sql)
/usr/local/mysql/bin/mysqlbinlog: unknown variable ‘default-character-set=utf8’
解决:
mysqlbinlog –no-defaults mysql-bin.000063 > back.sql