问题标签 [binlog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 过期 bin 登录分钟数
在 mysql conf 文件my.cnf
中,我想为 bin-logs 添加到期时间。在对此进行了快速研究之后,我开始知道如何将其设置为几天。即,expire_logs_days=3
.
我想将到期时间设置为每 5 分钟。可能吗 ?怎么做 ?我试过expire_logs_minutes=5
了,但是没有用。
感谢您的帮助。
php - 在不使用 mysqlbinlog 工具的情况下将 mysql binlogs 转换为文本格式
我需要将 mysql binlogs 转换为 PHP 脚本中的文本格式。我知道使用mysqlbinlog
工具将其转换为文本。但我不应该在我的脚本中运行任何系统命令(或任何 shell 命令)。
有没有其他方法可以使用 PHP 来做到这一点?
感谢您的任何帮助。
mysql - 如何在没有二进制日志的情况下恢复mysql数据
我想恢复一些不小心删除的数据,但是 mysql 二进制日志已关闭。没有用于恢复历史数据的 bin-log 文件。有没有其他方法可以解决这个问题?
php - 如何使用 Node.js 或 PHP 实时监听 MySQL 数据库更改
我需要创建一个具有多个数据库的系统,其中一个是主数据库,该数据库只需将结构更改复制到其他数据库,例如:
当我在系统中注册新用户时,系统会自动创建主数据库的结构副本,但该数据库不会将插入的寄存器或更新发送到主数据库,只有主数据库在更新时将所有结构更改发送到从数据库,因此我需要创建一个脚本或实现工具来捕获数据库更新,以实时在所有从站上执行更新。
我向 AWS 支持发送了一个问题,他们建议我实现一个 phyton 脚本或集成另一个允许进行二进制日志流的库,以将这些更改复制到从属的数据库。
AWS 支持回答:
您可以在此处遵循本指南[1],您可以跳过 Kinesis(AWS 服务)部分,直接编写代码,而不是将其放入 Kinesis 流中。您需要在数据库集群上启用 binlog 并收听日志。根据事件,您可以添加逻辑以对子数据库执行数据库更新。为了复制您的主数据库架构,我建议在任何子数据库需要配置和导入该架构之前使用 mysqldump CLI 工具导出主数据库的架构。然后使用 binlog 脚本根据您编写的逻辑将更改推送到您的子数据库。
[1] https://aws.amazon.com/blogs/database/streaming-changes-in-a-database-with-amazon-kinesis/
mysql - 为什么 mysqlbinlog 实用程序显示两个值而不是一个?
我正在尝试通过mysqlbinlog
实用程序调查 binlog 中的某些内容。当我添加详细参数时-vv
,我看到INSERT
这部分的查询
@2=-27170 (38366) /* SHORTINT meta=0 nullable=0 is_null=0 */
有谁知道为什么有两个数字?什么数字是真正INSERT
发送到 MySQL 的一部分?
mysql - 当 mysql binlog 到达 mysql-bin.999999 时会发生什么
假设我的 mysql 复制启用了很长时间,并且服务器一直很忙,所以每隔几秒钟就会创建新的 bin 日志文件。因此,在几个月后,最新的 bin 日志文件可能具有名称“mysql-bin.999999”。下一个文件是否又变成了“mysql-bin.000001”?
从检查角度来看,这个问题很重要,因为我正在使用复制来流式传输数据库的更改。如果名称从 000001 开始,那么我不能假设文件名将始终递增,因此如果收到较旧的记录,则不能因为文件名的数字较小而忽略它。
amazon-redshift - mysql 到 redshift 复制期间的缓慢插入和更新命令
我正在尝试制作一个从 MySQL 到 redshift 的复制服务器,为此,我正在解析 MySQL binlog。对于初始复制,我将 mysql 表转储,将其转换为 CSV 文件并将其上传到 S3,然后使用 redshift copy 命令。为此,性能是有效的。
在初始复制之后,为了在我读取 binlog 时进行连续同步,插入和更新必须按顺序运行,这非常慢。
有什么可以提高性能的吗?
我能想到的一种可能的解决方案是将语句包装在事务中,然后一次发送事务,以避免多次网络调用。但这并不能解决 redshift 中单个 update 和 insert 语句运行速度很慢的问题。单个更新语句需要 6 秒。了解 redshift 的局限性(它是一个列式数据库,单行插入会很慢)如何解决这些局限性?
编辑 1:关于 DMS:我想使用 redshift 作为仓储解决方案,它只是连续复制我们的 MYSQL,我不想对数据进行非规范化,因为我在 mysql 中有 170 多个表。在持续复制期间,DMS 在一天内多次显示许多错误,并在一两天后完全失败,并且很难破译 DMS 错误日志。此外,当我删除并重新加载表时,它会删除 redshift 上的现有表并创建新表,然后开始插入数据,这在我的情况下会导致停机。我想要的是创建一个新表,然后用新表切换旧表并删除旧表
python - 使用 python Django 和 Mysql。由于 Binlog,数据不会插入 MySQL
当我使用 django 设计网站和 delopy 时,我发现如果我使用 MySQL会激活Binlog(格式:STATEMENT)会有些麻烦。
此部署有我的设置:
- 基于 Django 的网站
- uwsgi
- 宁兴
- MySQL
第一步,我需要将我的模型迁移到数据库,所以我输入如下:
和这样的回溯:
在互联网上搜索后,我知道修复它的一种方法是更改 Binlog 格式,这对我来说非常有效。
但是如果我不想更改我的 Binlog 配置,我仍然想知道如何修复它。我认为 Django 可以支持这种格式的 Binlog。
java - mysql-binlog-connector-java - 在二进制日志索引文件中找不到第一个日志文件名
我正在这个库上做一个 POC,我在设置它时遇到了一些困难。我有一个非常简单的 MySQL 设置: - 单个 VM(无主从) - centos 7 - MySQL 版本 5.7
这是我到目前为止的代码:
运行此代码时,我得到以下输出:
OnCommunicationFailure() com.github.shyiko.mysql.binlog.network.ServerException: 在 com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:882) 的二进制日志索引文件中找不到第一个日志文件名在 com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:559) 在 Main.main(Main.java:40)
我的 MySQL 配置文件内容:
[mysqld]
datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock
符号链接=0
日志错误=/var/log/mysql/mysqld.log
server_id=1
log-bin=/var/log/mysql/mysql-bin
pid-file=/var/run/mysqld/mysqld.pid
绑定地址= 。. .
我的日志目录内容如下:
mysql-bin.index 的内容当然是:
此问题的所有在线解决方案均指主从配置,并且相应的解决方案 - 帮助任何人?:)
mysql - debezium 0.8.0 mysql连接器解析binlog失败,table.columnWithName返回null,为什么会这样?
当有人通过 IDEA 修改表时,由于 NullPointerException,debezium 连接器任务失败。
这是kafka连接日志:
这是mysql的二进制日志:
似乎 debezium 无法解析ALTER TABLE fund_account ALTER COLUMN is_use_pay SET DEFAULT 0
?