Articles of mysql replication

MySQL复制:如果副本被locking,任何风险都要掌握?

如果从属副本长时间处于locking状态,那么对MySQL主机有任何危险? 我正在使用5.6.xx. 这个问题表明这是“安全的”,但并不是说性能下降。 像完全复制队列阻止事务提交是不好的。 (这发生在一些NoSQL数据库写入)所以是减缓主交易。 我打算更改我的副本模式(recollat​​ion),这将花费一个小时的表locking。 完成后,我会推动它,并以这种方式(希望)做出生动的模式改变。 在这个小时内,不会发生复制,MySQL使用的任何队列/日志系统肯定会增长。

Slave_SQL_Running:否:MySQL复制停止工作

我的从数据库(MySQL 5.7.12)上的复制突然停止工作。 当我运行SHOW SLAVE STATUS\G我看到以下错误: Last_Errno: 1396 Last_Error: Error 'Operation CREATE USER failed for 'user'@'ip'' on query. Default database: ''. Query: 'CREATE USER 'user'@'ip' IDENTIFIED WITH 'mysql_native_password' AS '*password'' 我最近在主人和奴隶上都创build了2个新的只读用户,所以我确定这是因为这个原因。 我也看到这个状态: Slave_IO_Running: Yes Slave_SQL_Running: No 对于如何解决这个问题,有任何的build议吗? 谢谢。

从属logging修改后,与主DB同步

我在两个远程数据库之间build立了MySQL复制scheme。 我意识到,如果我更改从属数据库上的数据,更改后的数据不会再更新。 例如,我有一个表用户,我在主数据库上创build一个新的用户Joe。 Joe被复制到从DB上。 但是,如果稍后删除从DB上的Joe,则主站上的Joe不会被再次复制到从站。 为什么发生这种情况? 有没有办法阻止这个?

MySQL二进制日志超过15 GB

即使将最大大小设置为1 GB,我的服务器中的二进制日志仍然增长了超过15 GB。 MySQL服务器还没有启动。 任何人都可以突出什么可能造成的? 谢谢。

汇总来自多个MySQL服务器的数据

我有10个MySQL服务器,每个服务器都有一个需要复制到一个集中的MySQL服务器的数据库。 其复杂性在于每个服务器都必须将其数据库复制到中央服务器上的同一个数据库,从而从所有单独的服务器创build一个集中数据库。 尽pipe各种表都包含主键,但这些列可以安全地忽略,而不需要复制到中央服务器。 每个服务器上的数据库结构都是相同的。 什么是最好的方法来完成这个?

MySQL无法连接

我在主从configuration中构build两台mysql机器。 师父有: mysql> create user 'repl'@'%.%.%.abc.mydomain.com' identified by 'mypassword'; mysql> grant replication slave on *.* to 'repl'@'%.%.%.abc.mydomian.com'; 所以基本上像my.sql.slave.abc.mydomian.com应该能够连接,但在奴隶,如果我尝试: shell> mysql -h my.sql.master.abc.mydomain.com -urepl -pmypassword 它说: ERROR 1130 (HY000): Host '10.10.2.231' is not allowed to connect to this MySQL server 我想这是因为%。%。%。abc.mydomian.com被允许连接而不是10.10.2.231。 我不想使用IP进行连接。 如何确保我能够从my.sql.slave.abc.mydomian.com进行连接,而无需将IP my.sql.slave.abc.mydomian.com到图片中。 我不知道这个信息是否需要,但DNS查找和反向DNS查找工作正常和奴隶。

从转储的MySQL从服务器

我已经从现在作为主人的现场机器创build了一个从服务器。 我使用以下过程来创build它: mysqldump –opt -Q -B –master-data=2 –all-databases > dump.sql 然后我将这个转储导入到新机器上,并在转储中使用“CHANGE MASTER TO …”指令和一个日志文件/位置。 请注意,我有大约8000个数据库,并且在转储运行时我没有停止主数据库。 复制工作正常,但这是创build一个从服务器的正确方法? 我打算把这个奴隶推广到一个主人(不同的位置),所以我想确保服务器之间有100%的数据一致性。 我发现这篇文章说: 天真的方法就是使用mysqldump导出主服务器的副本并将其加载到从服务器上。 如果你只有一个数据库,这是有效的。 有了多个数据库,最终会得到不一致的数据。 mysqldump将从另一个事务中的服务器上的每个数据库转储数据。 这意味着您的导出将为每个数据库提供不同时间点的数据。 谢谢

Galera新群集WSREP未知错误141

我正在尝试使用Ansible(DevOps工具)在云中创build一个新的Galera集群。 我可以通过从SSH shell发出命令来启动集群,但不能从Ansible启动。 我简化了configuration到两个节点,但不能获得第二个节点join集群。 原因似乎是一个未知的错误141.我找不到这个错误的任何文档。 失败的原因似乎是: Jul 28 23:44:00 dev-database2 mysqld: 150729 9:44:00 [Warning] WSREP: 0.0 (dev-database1): State transfer to 1.0 (dev-database2) failed: -141 (Unknown error 141) 任何人都可以解释是什么导致这个错 configuration是Ubuntu 14.04,MariaDB 10.0.20,rsync复制在每台机器上使用相同的SSL证书。 这是join群集尝试失败的日志。 在此期间没有其他节点上的日志logging。 Jul 28 23:43:56 dev-database2 ansible-command: Invoked with creates=None executable=None chdir=None args=service mysql start removes=None NO_LOG=None shell=True warn=True Jul 28 23:43:56 dev-database2 mysqld_safe: […]

MySQL组复制 – 是否支持断开节点的只读操作?

请考虑以下一些组织的拓扑结构,由4个分支(A,B,C,D)组成。 所有分支机构位于不同的地理位置,并与VPN相连: 这个组织使用基于MySQL的解决scheme。 为了提供高可用性和提高可伸缩性,我考虑使用MySQL组复制 。 我打算在每个分支中放入一个数据库节点,所有的“读取”操作将从本地节点执行,而“写入”操作将在“主”上执行。 我查了几次MySQL文档,但是我找不到这个问题的明确答案:在某些分支的VPN断开的情况下(例如,数据库将不再连接到组),该分支是否仍然能够执行“读取“针对本地数据库节点的操作?

mysql的binlog在旋转之前最多只能达到50mb – 如何增加?

我运行一个高stream量的MySQL服务器 – 我发现我的binlog只有50MB,而MySQL又创build了一个新的。 我已经有max_binlog_size设置为1GB – 但由于某种原因,MySQL不会兑现它。 还有其他的设置,我应该知道吗? 我在MySQL 4.1.22,CentOS 5(从LiquidWebpipe理服务器)。 root@host2 [~]# mysqladmin variables | grep bin | binlog_cache_size | 32768 | | innodb_locks_unsafe_for_binlog | OFF | | log_bin | ON | | max_binlog_cache_size | 18446744073709551615 | | max_binlog_size | 1073741824 | | sync_binlog | 0 | 还有一种观察:基于“ls -al”输出,binlog的date在分钟部分几乎是相同的,也就是说,几乎总是在每小时的第41分钟转动。 这是奇怪的,因为我找不到任何可以做到这一点的cron脚本。 我问LiquidWeb系统pipe理员,他们说他们也没有控制这个。 那么,任何人的想法? — root@host2 [~]# […]