mysql - 使用外部源 mysql 在 google cloud sql 中设置副本时出现定义器错误
问题描述
我们正在谷歌云 sql 中设置托管在其他地方的 MySQL 的副本。
在检查复制失败的原因时,我们得到了这个:
{
"kind": "sql#externalSyncSettingErrorList",
"errors": [
{
"kind": "sql#externalSyncSettingError",
"type": "UNSUPPORTED_DEFINER",
"detail": "Definer user root@localhost not supported. Please update host to '%'."
}
]
}
我没有将根上的主机更改为“%”...关于如何在不接触源服务器的情况下解决此问题的任何提示?
解决方案
以下示例演示如何在 Linux、macOS 或适用于 Linux 的 Windows 子系统 (WSL) 中删除 DEFINER:
消除
sed -i -e 's/DEFINER=`root`@`localhost`//g' dump.sql
查找和替换
sed -i -e 's/DEFINER=`root`@`localhost`/DEFINER=`masteruser`@`%`/g' dump.sql
注意:将masteruser的值替换为您的 MySql 主用户的名称。
然后在副本上恢复(谷歌云 sql)。
推荐阅读
- javascript - 如何在 vee-validate v3 中创建通用规则?
- python - 我们可以从 URL 中的经纬度坐标导出地名吗?
- debugging - 未找到搜索结果时如何修复获取状态 500?
- flutter - 无法打开 flutter_downloader 的下载文件
- ios - 如果动画未完成,UIProgressView 不会重新启动
- python - 子函数出错时如何终止Python中的一行代码
- php - 如何将 is_user_logged_in() PHP 函数用于特定用户角色
- xamarin - Xamarin EmailAttachment 不在 iOS 上添加附件
- ms-access - 在 Access 中显示由重复项连接的数据
- pyspark - PySpark 在 Databricks 中爆炸 json 数组问题