server-id我用了IP的最后一个数字。日志最大512MB,删除30天以前的记录,可以根据实际环境自由调整。
第一步:
主mysql my.cnf配置:
log-bin=mysql-bin
expire_logs_days = 30
连接主数据库:
mysql -uroot -pxxxxxxxx
GRANT REPLICATION SLAVE ON *.* to 'sync_xxx'@'%' identified by 'xxxxxxxx';
flush privileges;
查看权限:select * from user where user = 'sync_xxx';
可以看到Repl_slave_priv项对就的值为Y。
第二步:
从数据库配置my.cnf并重启:
log-bin=mysql-bin
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
replicate-wild-ignore-table =mysql.%
replicate-wild-ignore-table =test.%
replicate-wild-ignore-table =log.%
replicate-wild-ignore-table =information_schema.%
replicate-wild-ignore-table =performance_schema.%
第三步,也是最重要最要紧的一步,要保证两个数据库数据完全一致,必须停掉主库的web服务,然后dump数据,然后启动主数据库,查看日志状态,因为这份备份的数据导入从库,日志状态配置到从库,可以保证从库数据和主库完全一致。
此时必须保证两个数据库都没有读写操作(断开web等写数据库的服务)。
dump主数据库数据(如果数据太大不能dump,可以停止掉mysql,把整个数据目录拷贝过去。),然后查看日志状态:
1、连接数据库:
查看日志状态:show master status;看到如下信息。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 1230 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
有了备份文件,有了备份文件以后没有进行任何写操作的主数据库的master状态,那么主数据库所在服务器的web服务就可以恢复了,因为从库导入了相同数据,且可以配置这个日志起点。
主库导出的数据导入到从数据库。
连接到从数据库,执行:注意:mysql-bin.000002来自查看主库状态得到的文件名字段File,MASTER_LOG_POS是Position字段。
CHANGE MASTER TO
MASTER_HOST=
'192.168.1.228'
,
MASTER_USER=
'xxxxx'
,
MASTER_PASSWORD=
'xxxxxx.'
,
MASTER_PORT=
3306
,
MASTER_LOG_FILE=
'mysql-bin.000003'
,
MASTER_LOG_POS=
1230,
MASTER_CONNECT_RETRY=
10
;
grant all privileges on *.* to username@127.0.0.1 identified by 'password';
flush privileges;
相当于创建了另一个超级用户!!!
所以,创建用户只能用如下方法:
grant all privileges on db_name.* to username@127.0.0.1 identified by 'password';
flush privileges;
验证设置只读成功的方法:
连接mysql数据库
更新一条数据看看能不能成功。
mysql> update account set nick='xxx';
ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
主从配置完毕,去主库变更一个数据,然后从库执行sql查询看看有没有随之变化吧,如果变化了,就启动主从服务器上的web服务即可。
主从配置的作用主要是做到双机热备,但对外提供服务的只有主数据库,当然,从数据库可用于数据读取,但绝对不能有写入操作,否则从数据库数据是不会同步到主数据库中的,而且对于采用自动递增id的情况,会导致从数据库因为添加了数据,而无法从主数据库从不过来(id重复的错误)。
如果主从数据库都要对外提供服务,则需要相互配置主从数据库,可以多台主机互为主从,但需要设置id的递增方法,见文章:
http://www.cnblogs.com/top5/archive/2009/04/15/1436399.html
相关推荐
自己整理的关于mysql主从复制相关的配置和一些关于在mysql主从复制运行的过程中遇到的问题和相关的解决方法
MySQL主从复制配置文档和MySQL在Linux环境下的编译安装配置文档,第一次上传资源不会更改资源分,知道如何更改的大佬请私信下,我这个本想0分分享的。
(1)首先,mysql主库在事务提交时会把数据库变更作为事件Events记录在二进制文件binlog中;mysql主库上的sys_binlog控制binlog日志刷新到磁盘。 (2)主库推送二进制文件binlog中的事件到...Mysql通过3个线程来完成主从库
MySQL主从复制架构原理与配置实践
导读: 作者:高鹏(网名八怪),《深入理解...八怪写作风格很是严谨,几乎每篇都是从源码入手去剖析MySQL主从复制相关的知识点。 强烈推荐大家订阅本专栏 业界大咖推荐序 从2016年开始八怪(本名高鹏)经常向我请教一
mysql主从复制配置文档,详细说明mysql主从复制步骤
二、MySQL主从复制配置 4 1、MySQL主从复制配置 4 2、MySQL主从复制的原理 6 三、Atlas代理配置 7 1、Atlas安装 7 2、修改test.cnf配置文件 7 3、创建Atlas启动脚本 9 4、启动Atlas代理 10 5、Atlas配置说明 10 四、...
用于在linux操作系统下设置mysql数据库的主从复制,包括了单项主从和双向主从的配置说明
一次mysql主从复制配置文档,系统环境centos7,mysql5.7
介绍MySQL主从复制的安装配置, MIXED复制是混合使用ROW(行)和STATEMENT(语句)复制。对于DDl语句会以STATEMENT格式记录;对于TABLE里的行操作记录为ROW格式 如果使用INNODB表,事务级别使用了READ COMMITTED or...
mysql5.6.14配置主从复制 ,自己搭建的mysql5.6.14配置主从复制步骤记录
Linux 下MYsql数据库主从复制详细配置
mysql主从复制安装配置
MYSQL数据库主从复制高可用技术改造环境部署方案。。。
mysql主从复制安装配置进阶
基于Mycat的Mysql主从复制读写分离配置详解与示例,DBA必看的
MySQL主从配置完整步骤资料
在数据库优化的时候,用到主从配置,里面讲解了mysql主从配置的步骤,按照上面就可以了,我已经安好了 切记 配置主数据库时查询的mysql-bin 和 position 要记住在后来配置从数据库时用到
3、支持 1台主机一键远程部署Mysql主从复制集群+(一主两从)。 4、支持 2台主机一键远程部署Mysql主从复制集群(一主一从)。 5、支持 3台主机一键远程部署Mysql主从复制集群(一主两从)。 6、支持一键部署所有...
LNH_MySQL 04-回顾MySQL主从复制配置步骤及注意事项.mp4