MySQL运行中被改权限测试
来自: http://ourmysql.com/archives/1420
今天一个接到一个朋友求助,说是数据在运行中,数据库的目录被改了权限。如: 数据库目结构如下:
datadir = / data / mysql / mysql3306 / data log - bin = / data / mysql / mysql3306 / logs tmpdir = / data / mysql / mysql3306 / tmp </td> </tr> </tbody> </table> </div> 被运维同步执行了: chown - R root : root / data / mysql / mysql3306 | 1.构建主从环境 mysql ; 3306 主 / data / mysql / mysql3306 / { data , tmp , logs } mysql ; 3307 从 / data / mysql / mysql3307 / { data , tmp , logs } </td> </tr> </tbody> </table> </div> 2. 在主的wubx库里创建: CREATE TABLE ` t2 ` ( ` id ` int ( 11 ) NOT NULL AUTO_INCREMENT , ` name ` varchar ( 32 ) DEFAULT NULL , PRIMARY KEY ( ` id ` ) ) </td> </tr> </tbody> </table> </div> 确认复制正常。 3. 把主库的目录权限改成root chown - R root : root / data / mysql / mysql3306 | 4. 弄出来大量的写入 for i in ` seq ( 100000 ) ; do mysql wubx - e "insert into t2(name) vlaues('golang$i')" ; done | 5. 观查主库和从库上数据 发现日志没有切换时,数据都可以写入,同步正常。 主库上binlog还可以正常写入。 6. 模拟日拟切换 主库上执行: flush logs; 得到报错: 从库同步报错: 1595错误 从这里看出来,从库获取到主库日志切换指令,但主库没能创建出来新的日志,所以造成复制中断。 7.结论 主库上不影响数据写入,但发生日志切换后,不能进行新的日志写入,但没卡住写入。 从库上在主库日志发生切后,能得到新的日志文件名,但不能获到新的日志,所以同步停掉。 8.修复建议:通过实验说明,主库上的数据是最全的,在后续日志切换失败后,没有影响数据的写入。但数据没有同步到从上。 思考: 这个有点是mysqld的一个bug的感觉了,日志已经无法写入,但数据还可以写入。 很容易造成同步有问题。 对于数据不同步怎么修复。多次给学生们讲过,也能很快的把环境处理好。 Good luck! </div>
| | |