我有一个数据库正在尝试迁移到 Amazon RDS。我通常按照说明进行操作https://engineering.gosquared.com/migration-mysql-to-amazon-rds https://engineering.gosquared.com/migrating-mysql-to-amazon-rds.
我已经对原始服务器进行了mysqldump,并将数据导入到RDS服务器中。现在,我准备导入自 mysqldump 以来发生的更改。当我将 mysqlbinlog 的输出通过管道传输到 mysql 时,出现有关 NULL 值的错误。
我的表有一个名为 TIMESTAMP 字段DateReceived
默认值为 CURRENT_TIMESTAMP。当我们的应用程序插入记录时,它会留下DateReceived
为 NULL,以便数据库处理填充当前时间。
当我们尝试导入 mysqlbinlog 时,它会因为 NULL 值插入而卡住。
以下是 mysqlbinlog 的输出片段:
BEGIN
/*!*/;
# at 42615369
#130813 13:41:12 server id 60 end_log_pos 42615397 Intvar
SET INSERT_ID=173164716/*!*/;
# at 42615397
#130813 13:41:12 server id 60 end_log_pos 42618804 Query thread_id=680551 exec_time=0 error_code=0
use mydatabase/*!*/;
SET TIMESTAMP=1376426472/*!*/;
INSERT INTO email_History (`From`, `Subject`, `DateReceived`) VALUES ('[email protected] /cdn-cgi/l/email-protection', 'FW: Message', NULL)
/*!*/;
# at 42618804
#130813 13:41:12 server id 60 end_log_pos 42618831 Xid = 37399491
当我尝试导入它时,我从 mysql 得到的错误是:
ERROR 1048 (23000) at line 28: Column 'DateReceived' cannot be null
我的表的结构如下:
mysql> describe email_History;
+--------------+------------------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------------------+------+-----+-------------------+----------------+
| From | varchar(512) | YES | MUL | NULL | |
| Subject | varchar(512) | YES | MUL | NULL | |
| DateReceived | timestamp | NO | MUL | CURRENT_TIMESTAMP | |
+--------------+------------------------------+------+-----+-------------------+----------------+
3 rows in set (0.00 sec)
如何导入binlog?