我在使用简单的 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 的表:
创建表`测试`( `name` varchar(25) NOT NULL, `age` int(11) 默认为空, 主键(`名称`) ) 引擎=InnoDB 默认字符集=latin1
它已成功复制到只读副本。然后我设置我的输入文件:
# 猫测试.csv 史蒂夫,24 鲍勃,34 考特尼,12 本,28 艾丹,15
然后用(忽略警告,我的分隔符没有正确但数据进入)导入它:
mysqlimport --local testdb test.csv
testdb.test: Records: 5 Deleted: 0 Skipped: 0 Warnings: 5
这就是杀死只读副本所需的全部内容。我以创建 RDS 实例时创建的用户身份连接到 mysql,因此它应该具有所有权限。但无论如何,只读副本都有自己的复制用户。我已经尝试使只读复制不是只读的,但这似乎不起作用。
mysql>状态; -------------- mysql Ver 14.14 Distrib 5.5.27,适用于 FreeBSD9.0 (amd64) 使用 5.2 连接编号:13481 当前数据库:testdb 当前用户:testuser@ip-10-50-99-59.eu-west-1.compute.internal SSL:未使用 当前寻呼机:更多 使用输出文件:'' 使用分隔符:; 服务器版本:5.6.13-log MySQL Community Server (GPL) 协议版本:10 连接:saturn.xxxxxxxxxxx.eu-west-1.rds.amazonaws.com 通过 TCP/IP 服务器字符集:latin1 Db 字符集:latin1 客户端字符集:latin1 康涅狄格字符集:latin1 TCP端口:3306 正常运行时间:8 小时 52 分 23 秒 线程:3 问题:775195 慢查询:0 打开:51017 刷新表:1 打开表:2000 每秒查询平均:24.268
如果有人可以提供帮助,我会很高兴
谢谢
史蒂夫