gpt4 book ai didi

MySQL RDS 复制死于 LOAD DATA INFILE

转载 作者:行者123 更新时间:2023-11-29 02:27:38 25 4
gpt4 key购买 nike

我在使用简单的 RDS 只读副本时遇到了一个令人困惑的问题,当我们在主服务器上执行 LOAD DATA LOCAL INFILE 时,它可靠地杀死了只读副本:

Error 'Access denied for user ''@'' (using password: NO)' on query. Default database: 'testdb'. Query: 'LOAD DATA INFILE '/rdsdbdata/tmp/SQL_LOAD-5ce65f0d-1a6a-11e3-af1b-12313c014074-352397698-1549.data' IGNORE INTO  TABLE `test` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`name`, `age`)'

为了复制这种情况,我有一个简单的 master 并创建了一个名为 test 的表:

CREATE TABLE `test` (`name` varchar(25) NOT NULL,  `age` int(11) DEFAULT NULL,  PRIMARY KEY (`name`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 

It was replicated to the read replica successfully. Then i setup my input file :

# cat test.csvsteve,24bob,34courtney,12ben,28aidan,15

Then imported it with (Ignore the warnings, i didnt get my separator right but data went in) :

mysqlimport --local testdb test.csv
testdb.test: Records: 5 Deleted: 0 Skipped: 0 Warnings: 5

这就是杀死只读副本所需的全部。我以创建 RDS 实例时创建的用户身份连接到 mysql,因此它应该具有所有权限。但无论如何,只读副本将拥有自己的复制用户。我试过将只读复制设置为非只读,但这似乎不起作用。

mysql> status;--------------mysql  Ver 14.14 Distrib 5.5.27, for FreeBSD9.0 (amd64) using  5.2Connection id:          13481Current database:       testdbCurrent user:           testuser@ip-10-50-99-59.eu-west-1.compute.internalSSL:                    Not in useCurrent pager:          moreUsing outfile:          ''Using delimiter:        ;Server version:         5.6.13-log MySQL Community Server (GPL)Protocol version:       10Connection:             saturn.xxxxxxxxxxx.eu-west-1.rds.amazonaws.com via TCP/IPServer characterset:    latin1Db     characterset:    latin1Client characterset:    latin1Conn.  characterset:    latin1TCP port:               3306Uptime:                 8 hours 52 min 23 secThreads: 3  Questions: 775195  Slow queries: 0  Opens: 51017  Flush tables: 1  Open tables: 2000  Queries per second avg: 24.268

如果有人能帮忙,我会很高兴

谢谢

史蒂夫

最佳答案

中断的原因主要是因为只读副本正在重放二进制日志,当它到达您的 LOAD DATA LOCAL INFILE 语句时,它没有该文件。

RDS 使用快照从现有数据库创建全新的只读副本,而不是通过重放 bin 日志。

因此解决方案是:在对主服务器执行任何加载数据本地文件后,您将必须删除只读副本并重新创建它。

关于MySQL RDS 复制死于 LOAD DATA INFILE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18730245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com