【问题标题】:Copy remote database views to local database as tables将远程数据库视图作为表复制到本地数据库
【发布时间】:2017-03-22 04:54:01
【问题描述】:

我目前只能访问远程数据库上的视图,我正在尝试将这些视图的数据复制到本地,以便我可以更快地工作。我尝试使用mysqldump 创建一个.sql 文件并加载它,但它似乎不起作用。

获取远程数据库:

$ mysqldump --single-transaction -u username -p -h somesite.com -P 32000 db_name > mysql.sql

复制到本地:

$ mysql -u root -p mydatabase < mysql.sql

但我得到一个错误

ERROR 1146 (42S02) at line 668: Table 'db_name.some_view' doesn't exist

我的本​​地数据库完全是空的,除了我在 mysql shell 中使用命令create database mydatabase; 创建了一个空数据库。

我遇到这个问题是因为我只能访问远程数据库中的视图,因此我一开始就无法使用此方法吗?

【问题讨论】:

  • 可能是因为您没有此工作所需的 SHOW CREATE VIEW 权限
  • 有没有办法让我使用命令来确定我是否拥有该权限?

标签: mysql sql-server linux database


【解决方案1】:

你从远程系统获取的数据是否正确。如果你通过远程连接到数据库服务器后没有尝试这个命令,命令是

  • mysqldump -u 用户名 -h 192.168.X.X -P 密码 --routines>xxxx.sql

它会询问数据库的密码。到目前为止数据只在数据库服务器中。从你的本地系统使用这个命令从数据库服务器中获取数据,命令是

  • rsync -vaH 用户名@192.168.X.X:/datalocation /yourlocation

现在数据在您的本地系统上。然后在您的系统中创建一个数据库。

  • mysql
  • 创建数据库;
  • 将 databasename .* 上的所有权限授予由 'password' 标识的 databaseschema@'%';
  • 刷新权限;

如果不是对不起兄弟,我想这可能会对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多