【发布时间】:2019-09-15 10:46:52
【问题描述】:
我正在将数据库从外部服务器迁移到云 sql 第二代。一直遵循推荐的步骤,2TB mysqlsump 过程已完成并开始复制。但是,出现错误:
'错误''访问被拒绝用户''skip-grants user''@''skip-grants host''(使用密码:NO)''查询。默认数据库:''mondovo_db''。查询:''LOAD DATA INFILE''/mysql/tmp/SQL_LOAD-0a868f6d-8681-11e9-b5d3-42010a8000a8-6498057-322806.data'' IGNORE INTO TABLE seoi_volume_update_tracker FIELDS TERMINATED BY ''^@^'' ENCLOSED BY' ''' ESCAPED BY ''\'' LINES TERMINATED BY ''^|^'' (keyword_search_volume_id)'''
2 个问题,
1) 我猜这个错误是因为云 sql 需要 LOAD DATA LOCAL INFILE 而不是 LOAD DATA INFILE?但是我很确定在主服务器上我们只运行 LOAD DATA LOCAL INFILE 所以不确定在复制时它如何更改以删除 LOCAL,这可能吗?
2) 我无法停止从站跳过错误并重新启动,因为超级权限不可用,因此我不确定如何跳过此错误,并在最终同步发生时避免它在未来发生。有什么建议吗?
【问题讨论】:
-
您应该可以使用LOAD DATA LOCAL INFILE。我不确定是否可以跳过此错误。这可能是您的用户帐户的 MySQL 权限问题。也许它缺少necessary privilege。如果问题是导出的文件,您可以尝试 Cloud SQL 文档中的 query 以避免任何问题。
-
命令失败是“LOAD DATA INFILE”而不是“LOAD DATA LOCAL INFILE”,我猜这是一个问题,因为没有“LOCAL”它在云 SQL 上不起作用。所以现在,我想不出如何跳过这个错误并继续复制。
-
抱歉,我误读了查询。对于你的第一个问题,你能澄清一下大师做了什么吗?根据我的理解,LOAD DATA INFILE 应该在 Cloud SQL 实例上运行,而不是在主实例上运行。对于第二个问题,您能否澄清跳过错误的意思?错误是否仅发生在某些行?如果您不使用 LOCAL,则查询根本不会运行。确认一下,当您说复制时,您是指到主 Cloud SQL 实例的导入过程吗?或者你有没有提到的副本设置here
-
你找到答案了吗?我遇到了同样的问题
标签: google-cloud-platform google-cloud-sql