【问题标题】:Copying mysql databases from one computer to another将mysql数据库从一台计算机复制到另一台计算机
【发布时间】:2014-04-22 06:17:08
【问题描述】:

我想将我的 mysql 数据库从我的计算机复制到另一台计算机。我该怎么做?

【问题讨论】:

  • 使用export db并导入
  • @homen,看看我的明确参考问题...
  • 如果你得到答案,你应该点击勾选按钮并像点击这个链接meta.stackexchange.com/a/5235/255001一样投赞成票

标签: mysql copy


【解决方案1】:

如何使用mysqldump将Mysql数据库从一台计算机复制到另一台/备份数据库

  1. 我们可以使用以下命令将 MySQL 数据库从一台 PC 转移到另一台 PC mysqldump 命令。

  2. 我们必须创建数据库的转储文件来传输数据库 一台 PC 到另一台 PC。

  3. MySQL 数据库不是可移植数据库,即我们无法转移它 通过复制和粘贴从一台 PC 到另一台 PC。

  4. 我们可以使用以下方法来传输数据库。

  5. 从数据库创建转储文件/备份 MySQL 数据库:

  6. 打开命令提示符。

  7. 执行以下命令更改目录

>c:  “press enter”

>cd  program files/MySQL/MySQL Server 5.1/ bin “press enter”

>mysqldump -u root  -p database_name > database_name.sql  “press enter”

  Enter password: password of MySQL

复制sql文件并将其粘贴到您要传输数据库的PC中。

      2. Dumping sql file into database:-

      - Open MySQL  command line client command prompt.

      - Execute following command to create database.

创建数据库database_name;

“按 Enter” 数据库名称必须与您的 database_name 相同。

将该 sql 文件复制到位置“c:/program files/MySQL/MySQL Server 5.1/bin”

      *- Now open command prompt and execute following commands.*


        >C: “press enter”

        >cd program files/MySQL/MySQL Server5.1/bin “press enter”

        >mysql –u root –p database_name < database_name.sql “press enter”

        Your database is created on PC.

        Now in MySQL command prompt check your database.  

另一个:1

最好和最简单的方法是使用数据库工具(SQLyog)

http://www.webyog.com/product/downloads

使用此工具,您可以连接 2 个数据库服务器,只需将服务器 a 上的一个数据库复制到服务器 b。

更多信息

http://faq.webyog.com/content/12/32/en/mysql-5-objects-are-greyed-out-in-copy-db-to-other-host-dialogue.html

另一个:2

对于名为“lbry”的数据库,试试这个:

mysqldump -u root -p lbry > dump-lbry.sql

在您希望将数据库内容复制到的计算机上创建一个同名数据库(本例中为“lbry”)

然后导入:

mysql -u root -p lbry < dump-lbry.sql

【讨论】:

【解决方案2】:

您可以使用 MySQL WorkBench 逐步完成此过程。

  1. 安装 MySQL 工作台
  2. 连接到现有数据库
  3. 转到导航器 -> 管理 -> 数据导出。 (这会将表的查询一一转储到单独的文件夹中,Workbench 使用同一文件夹导入)
  4. 在目标 PC 上创建数据库。
  5. 连接到目标数据库(将由 DB 中的 0 个表组成)
  6. 转到导航器 -> 管理 -> 数据导入/恢复。 (这将使用转储文件夹并在目标数据库中创建表)。

希望这会有所帮助。

【讨论】:

  • 旧答案,但今天帮助了我!谢谢:)
  • 像魅力一样工作
  • MySQL Workbench 8.0 中没有 Navigator 选项,现在位于 Server > Data Export 下。
【解决方案3】:

将数据库从一台机器复制到另一台机器的唯一安全方法是首先静默数据库(确保没有客户端正在修改它),然后使用mysqldump 命令创建模式的文本表示和你的桌子。然后将该文本文件复制到另一台机器并通过将其指定为mysql 命令的输入来读取它。

试图复制实际的 mysql 数据目录是自找麻烦,因为它们依赖于运行 mysql 的机器的体系结构,并且可能依赖于 mysql 的版本和正在使用的任何存储引擎。

【讨论】:

    【解决方案4】:
    1. 本教程在 Ubuntu 中运行,但适用于 Redhat、Centos、Fedora、Suse
    2. 我们可以转储数据库,将其转移到另一台服务器并恢复它
    3. 它将展示如何处理修改后的凭据以及移动 debain.cnf 文件等问题 4 dump restore 会减慢服务器工作原理

    4.1 在源服务器上运行 mysqldump:这将为目标服务器构建一个 MySQL 可执行脚本。 在此期间,MySQL 服务器将对查询进行排队 4.2 将转储文件复制到目标服务器 4.3 清空目标服务器 4.4 在目标服务器上执行转储文件

    服务器 A(源服务器) 服务器 B(目标服务器)

    案例 1:服务器 A

    root@source$ mysql --defaults-file=/etc/mysql/debain.cnf
    mysql>show databases;
    mysql>use testdb;(The database to dump)
    mysql>show tables;(To Check the tables)
    mysql>^c
    

    -- 现在转储数据库

    root@surce$ mysql --defaults-file=/etc/mysql/debain.cnf --all-databses | gzip -c > dump.sql.gz
    
    root@surce$ gzip -dc dump.sql.gz
    

    要复制文件,请在源服务器上创建一个 ssh 密钥

    root@surce$ ssh-keygen
    root@surce$ cat /root/.ssh/id_rsa.pub
    select and copy all the ssh key string
    
    root@surce$ scp dump.sql.gz ubuntu@destination:
    

    转到目标服务器

    最后一步复制debain.cnf文件的内容

    root@surce$ cat /etc/mysql/debain.cnf
    [client]
    host        = localhost
    user        = debain-sys-maint
    password    = mysecret
    socket      = /var/run/mysqld/mysqld.sock
    [mysql_upgrade]
    host        = localhost
    user        = debain-sys-maint
    password    = mysecret
    socket      = /var/run/mysqld/mysqld.sock
    basedir     = /usr
    

    全选并将此文件复制到目标服务器。

    注意:sockey 路径在你的机器上可能不同。使用 locate 命令找到确切的路径

    案例 2. 服务器 B 删除所有数据库

    root@destination$ echo show databases | mysql --defaults-file=/etc/mysql/debian.cnf --skip-column-names | awk '{print "drop database "$1";"}'
    

    如果此命令不删除数据库,请使用 -force 选项

    root@destination$ echo show databases | mysql --defaults-file=/etc/mysql/debian.cnf --skip-column-names | awk '{print "drop database "$1";"}' | mysql --defaults-file=/etc/mysql/debian.cnf -f
    

    复制目标服务器上的 ssh 密钥

    root@destination$ echo "在此处粘贴密钥" >> /home/ubuntu/.ssh/authorised_keys

    转到源服务器并使用 scp 命令移动目标服务器上的转储

    (注入文件)

    root@destination$ gzip -dc /home/ubuntu/dump.sql.gz | mysql --defaults-file=/etc/mysql/debain.cnf
    
    root@destination$ > /etc/mysql/debain.cnf
    root@destination$ nano /etc/mysql/debain.cnf
    

    在此处粘贴来自源服务器的 .cnf 文件的内容并保存文件 :x

    root@destination$ mysql --defaults-file= /etc/mysql/debain.cnf
    

    如果你得到 mysql 提示,那么一切都应该是工作文件

    mysql>
    

    【讨论】:

      【解决方案5】:

      我能够恢复在此线程之后与我共享的备份,特别是 @jmail 的答案,但是,我认为我可以为未来的用户提供更简洁的答案。我收到了一个带有 .sql 扩展名的转储文件,而不是我预期的 .dump 扩展名。

      我试图将它放在我的项目文件夹中并恢复它,但我收到错误 22,指的是访问权限。我把它移到“c:/program files/MySQL/MySQL Server 5.1/bin”,然后运行它:

      1) 在命令提示符下启动 MySQL。

      2) 创建我想要恢复到的新数据库

      3) 切换到数据库

      USE new_DB;
      

      4) 运行

      source c:/program files/MySQL/MySQL Server 5.1/bin/backup.sql
      

      我不确定 backup.sql 文件是如何创建的,但这适用于在我的 Windows 10 系统上恢复它。

      【讨论】:

        【解决方案6】:

        mysqldump --databases dbname -hsource_server_ip -usource_server_userName -psource_server_passcode | mysql -udest_server_user_name -pdest_server_user_passcode &

        调用mysqldump的一般方式有3种:

        shell> mysqldump [options] db_name [tbl_name ...]
        shell> mysqldump [options] --databases db_name ...
        shell> mysqldump [options] --all-databases
        

        如果您没有在 db_name 之后命名任何表,或者如果您使用 --databases 或 --all-databases 选项,则会转储整个数据库。

        mysqldump 默认不转储INFORMATION_SCHEMA 数据库。如果您在命令行上明确命名,MariaDB 会转储 INFORMATION_SCHEMA,但目前您还必须使用 --skip-lock-tables 选项。

        要查看您的 mysqldump 版本支持的选项列表,请执行 mysqldump --help。

        【讨论】:

        • 这可能会满足问题的要求,但请您更新一些解释,以便那些寻求解决此问题的人能够更好地理解。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-14
        相关资源
        最近更新 更多