【问题标题】:How to import existing database to homestead?如何将现有数据库导入宅基地​​?
【发布时间】:2016-01-25 00:22:49
【问题描述】:

我正在学习使用 Homestead 2.0。我的本地机器上有一个现有的 MySQL 数据库。如果我在 homestead 虚拟机上新建一个 laravel 5.0 项目,我应该怎么做才能连接到现有的数据库?

  1. 如果我需要迁移 Homestead 上的数据库,应该怎么做?
  2. 如果我可以从 Homestead 连接到我的数据库,我应该如何在 Homestead 上配置它?

谢谢。

【问题讨论】:

    标签: php mysql laravel-5 homestead


    【解决方案1】:

    请注意,Homestead 是一个单独的环境,无法访问您主机上的数据库。 Laravel Homestead 安装了一个 mysql 数据库。您应该将此 mysql 用于在 Homestead 中运行的代码。解决问题的一种简单方法是在 Homestead 盒子上安装 phpMyAdmin,然后将 DB 导入 Homestead 中的 mysql。

    安装phpMyAdmin的步骤: 从here 得到以下答案并添加了我的笔记

    1. https://www.phpmyadmin.net 下载最新版本的 phpMyAdmin 并将其解压缩到主机的目录中。
      注意:我提取到/var/www/phpmyadmin/public。这里public 目录很重要,否则访问phpmyadmin 时会收到No input file specified. 错误。
    2. 配置homestead.yaml文件添加一个可以访问phpmyadmin的站点

      folders:
      - map: /var/www/phpmyadmin
      to: /home/vagrant/code/phpmyadmin

      sites:
      - map: phpmyadmin.app
      to: /home/vagrant/code/phpmyadmin/public

    3. 将此行添加到您的\etc\hosts 文件中:
      192.168.10.10 phpmyadmin.app
      注意:192.168.10.10 是我的homestead.yaml 配置文件中的ip。

    现在通过运行vagrant up 启动vagrant,您应该可以通过访问url phpmyadmin.app 访问homestead 的mysql。现在安装了 phpmyadmin,您可以轻松导入数据库。

    【讨论】:

      【解决方案2】:

      将您的 Homestead 安装视为在完全不同的机器上运行的远程主机。 Homestead 对您的本地主机一无所知,因此无法直接连接到您本地托管的 MySQL 数据库。

      您的 Homestead 安装在其自己的 IP 地址上运行。无论 IP 是什么(可能是 192.168.10.10),您都可以使用 MySQL Workbench 或 SequelPro 使用以下凭据连接到它:

      主机:您的 Homestead IP
      端口:3306
      用户名:宅基地
      密码:秘密

      您可以通过打开以下文件找到您的 IP:

      ~/.homestead/Homestead.yaml

      如果您使用的是 Windows,则可能是:

      C:\Users\你的用户名\.homestead\Homestead.yaml

      为了与您的数据库交互,请通过在您的 Homestead 目录中运行 vagrant up 确保 Homestead 首先运行,否则会出错。

      之后,您可以导出本地数据库,然后使用上述凭据将其导入您的 Homestead 数据库之一。

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题;我就是这样解决的

        我在开发一个laravel 4.2项目,用WampServer作为开发环境,后来我决定改用laravel homestead作为开发环境

        步骤:

        将数据库保存为 .sql 文件(我的情况:从 phpMyAdmin 导出并保存为 db.sql)

        将 .sql 文件放在项目的根目录中

        导航到您的宅基地目录

        C:\Users\chebaby\Homestead (master)
        

        进入流浪者盒子

        vagrant ssh
        

        导航到框中的项目根目录(在我的例子中,您早期保存了 darabase .sql 文件:db.sql)

        vagrant@homestead:~$ cd Code/project-folder/
        

        登录mysql

        vagrant@homestead:~/Code/project-folder$ mysql --user=homestead --password=secret
        

        检查你的数据库是否已经存在运行

        mysql> show databases;
        

        通过运行此命令创建您的数据库

        mysql> create database yourdatabasename;
        

        现在你确定你的数据库已经创建好了,退出 mysql 回到 vagrant 提示符

        mysql> exit;
        

        通过运行导入数据库文件

        vagrant@homestead:~/Code/project-folder$ mysql --user=homestead --password=secret yourdatabasename < db.sql
        

        您所要做的就是检查您现有的数据库是否成功导入

        登录mysql

        vagrant@homestead:~/Code/project-folder$ mysql --user=homestead --password=secret
        

        然后运行

        mysql> use yourdatabasename
        

        显示表格运行

        mysql> show tables;
        

        希望这能回答你的问题

        其他资源

        Laravel Homestead- MySQL default credentials and database

        How to import an SQL file using the command line in MySQL?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-24
          • 2023-03-30
          • 2018-12-09
          相关资源
          最近更新 更多