将mysql数据库从一台计算机复制到另一台计算机

时间:2014-03-17 05:39:23

标签: mysql copy

我想将我的mysql数据库从我的电脑复制到另一台电脑。我怎么能这样做?

6 个答案:

答案 0 :(得分:12)

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

  1. 我们可以使用MySQL将数据库从一台PC传输到另一台PC mysqldump命令。
  2. 我们必须创建数据库的转储文件以从中传输数据库 一台PC到另一台PC。

  3. MySQL数据库不是便携式数据库,即我们无法传输它 通过复制和粘贴,从一台PC到另一台PC。

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

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

  6. 打开命令提示符。

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

      

    c:“按回车”

         

    cd程序文件/ MySQL / MySQL Server 5.1 / bin“按回车”

         

    mysqldump -u root -p database_name> database_name.sql“按回车”

    输入密码:MySQL的密码

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

          2. Dumping sql file into database:-
    
          - Open MySQL  command line client command prompt.
    
          - Execute following command to create database.
    
      

    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.htmlenter此处的图片说明

    look here

    另一个:

    对于名为“lbry”的数据库,请尝试以下操作:

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

    在要复制数据库内容的计算机上创建同名数据库(本例中为“lbry”)

    然后导入它:

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

答案 1 :(得分:11)

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

  1. 安装MySQL Workbench
  2. 连接到现有数据库
  3. 转到导航器 - &gt;管理 - &gt;数据导出。 (这将在一个单独的文件夹中逐个转储表的查询,Workbench使用相同的文件夹导入)
  4. 在目标PC上创建数据库。
  5. 连接到目标数据库(将包含数据库中的0个表)
  6. 转到导航器 - &gt;管理 - &gt;数据导入/恢复。 (这将使用转储文件夹并在目标数据库中创建表)。
  7. 希望这有帮助。

答案 2 :(得分:4)

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

尝试复制实际的mysql数据目录是一件麻烦事,因为它们依赖于运行mysql的机器的体系结构,可能还有mysql的版本以及正在使用的任何存储引擎。

答案 3 :(得分:2)

  1. 本教程在Ubuntu中,但适用于Redhat,Centos,Fedora,Suse
  2. 我们可以转储数据库,将其转移到另一台服务器并恢复它
  3. 它将显示如何处理修改后的凭据等内容并移动debain.cnf文件 4转储恢复将减慢服务器如何工作
  4. 4.1在源服务器上运行mysqldump:这将为目标服务器构建一个MySQL可执行脚本。     在此期间,MySQL服务器将对查询进行排队 4.2将转储文件复制到目标服务器 4.3清空目标服务器 4.4在destintion服务器上执行转储文件

    服务器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
    

    选择all并将此文件复制到detination server。

    注意:您的机器中的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&#34;将密钥粘贴到此处&#34; &GT;&GT; /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>
    

答案 4 :(得分:0)

我能够按照该线程还原与我共享的备份,特别是@jmail的答案,但是,我认为我可以为将来的用户提供更为简洁的答案。我收到的转储文件带有.sql扩展名,而不是我期望的.dump扩展名。

我试图将其放在我的项目文件夹中并还原它,但出现错误22,指的是访问权限。我将其移至“ c:/程序文件/ 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系统上还原它。

答案 5 :(得分:0)

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

共有三种调用mysqldump的方法:

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 数据库。如果您在命令行上明确命名 INFORMATION_SCHEMA ,MariaDB会转储该文件,尽管当前您还必须使用--skip-lock-tables选项。

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