【问题标题】:MySQL : Copy all databases from one server to anotherMySQL:将所有数据库从一台服务器复制到另一台服务器
【发布时间】:2016-09-13 07:20:25
【问题描述】:

我正在将我们的一个需要 MySQL 的项目迁移到另一台服务器。我正在寻找一种将用户创建的所有数据库迁移到另一台服务器的方法。首先,我尝试只移动一个数据库,但它不起作用。

尝试:

mysqldump db_name | mysql -h root@migration_server.com target_db(same name);

错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'command as above' at line 1

我做错了什么?我需要设置的第二台服务器上的任何内容或其他内容。谢谢你。

【问题讨论】:

  • 首先创建您的转储,然后使用单独的命令行指令将其导入。
  • @Shadow : 怎么样,我不能一次只推送一个数据库吗?
  • 目前您看不到第一个命令 (mysqldump) 的输出。如果您单独运行它,那么您可能会知道第一个导致第二个问题的输出是什么。我最初的猜测:您没有提供 mysqldump 的登录详细信息。

标签: mysql database migration database-migration


【解决方案1】:

采取转储。

  mysqldump -uroot -p --port= <3306 or 3309> db_name > "d:\target_db.sql";

恢复转储

mysqldump -uroot -p  db_name < "d:\target_db.sql";

提及端口是可选的。

【讨论】:

  • 我想我会在系统上创建转储,然后手动传输它,因为 mysql 在连接到迁移服务器时遇到问题,错误:2005:未知的 MySQL 服务器主机。我可以删除服务器参数并获得转储吗?
  • 第一个命令有效,现在正在进行迁移,将让您随时了解最新情况。谢谢。
  • 即使指定了端口,您的第二个命令也无法正常工作,错误 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'mysqldump -u root -p --port=3306 shopware /target_db.sql' 附近使用正确的语法
  • 您是否缺少目录路径周围的双勾??
  • @WeareBorg 您似乎是在 in mysql 的命令行客户端发出第二个命令,而不是从命令提示符发出。
猜你喜欢
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多