1复制准备主库(mysql master):ip为192.168.1.5port为3306从库(mysql slave):ip为192.168.1.4port为3306数据库环境准备,具备两台服务器每个机器一个数据库的环境.2.主库上执行操作2.1设置server-id值并开启binlog参数根据mysql的同步原理,我们知道复制的关键因素就是binlog日志.执行vi/etc/my.cnf编辑my.cnf配置文件,按如下两个参数内容修改:[mysqld]server-id = 1log-bin = mysql-bi提示:1.上面两参数放在my.cnf中的[mysqld]模块下,否则会出错;2.要先在my.cnf文件中查找相关参数,并按要求修改,不存在时在添加参数,切记,参数不能重复;3.修改my.cnf配置后需要重启数据库命令为:/etc/init.d/mysqlrestart,注意确认真正重启了(此处数据库为源码包安装,在后面我将贴出mysql的启动脚本)。检查配置后的结果(这是一个好的习惯):grep-E "server-id|log-bin" /etc/my.cnf和egrep一样的作用 /etc/init.d/mysqlrestart2.2建立用于同步的账号rep登陆mysql 3306实例主数据库mysql-uroot-p'123123'-S/tmp/mysql.sockmysql>selectuser();查看用户mysql>grantreplicationslaveon*.*to'rep'@'192.168.1.%'identifiedby"123456";建立用于库复制的账号rep#replicationslave为mysql同步的必须权限,此处不要授权all#*.*表示所有库所有表,库也是可以指定具体的库和表进行复制,如test.test1(test库的test1表);#'rep'@'192.168.1.%' rep为同步账号,192.168.1.%为授权主机,使用了%表示允许整个192.168.1.0网段以rep用户访问;#identifiedby"123456" , 123456为密码,实际环境时复杂一点为好。再次检查创建的rep账号selectuser.hostfrommysql.user;也可以查看用户权限mysql>showgrantsforrep@'192.168.1.%';
2.3对数据库锁表只读(当前窗口不要关闭)生产环境时,操作主从复制,需要申请停机时间,锁表会影响业务。mysql>flushtableswithreadlock;提示,这个锁表命令的时间,在不同引擎的情况,会受下面参数的控制,锁表时,如果超过设置时间不操作会自动解锁;interactive_timeout = 60wait_timeout = 60默认情况下的时长为:mysql>showvariableslike"%timeout%";可以查看到默认值很大
完成后测试下是否锁表,打开另一窗口创建一test1表,是不会执行的,证明锁表不能更新,但可读,不可写,因为是read读锁,锁
mysql数据库主从同步时间_mysql数据库的主从同步过程详述
最新推荐文章于 2024-04-27 01:51:46 发布
![](https://img-home.csdnimg.cn/images/20240611030827.png)