【问题标题】:How to Import a MySQL Database When Using Vagrant使用 Vagrant 时如何导入 MySQL 数据库
【发布时间】:2016-10-03 07:38:39
【问题描述】:

我在使用 vagrant 导入数据库时​​遇到问题。

我已经运行 vagrant up 并且一切正常。然后我运行vagrant ssh,登录 mysql,设置数据库和用户——一切正常。

然后我退出 mysql(但不是 vagrant ssh)并运行并运行以下命令:

mysql -u root -p mydatabase < "C:\Users\moshe\Websites\Projects\backup.sql"

此时我收到以下消息:

-bash: C:\Users\moshe\Websites\Projects\backup.sql: No such file or directory

知道我做错了什么吗?

附:如果它是相关的 - 我正在使用 Windows 10。

附: 2:我看了一下this question,尝试将backup.sql移动到.vagrant文​​件夹,然后运行mysql命令,还是不行。

更新 df 命令在 vagrant ssh 中运行

vagrant@scotchbox:~$ df
Filesystem                                    1K-blocks     Used Available Use% Mounted on
/dev/sda1                                      41251136  6750852  32764372  18% /
none                                                  4        0         4   0% /sys/fs/cgroup
udev                                            1019772       12   1019760   1% /dev
tmpfs                                            204992      380    204612   1% /run
none                                               5120        0      5120   0% /run/lock
none                                            1024956        0   1024956   0% /run/shm
none                                             102400        0    102400   0% /run/user
192.168.33.1:/C/Users/moshe/Websites/Projects 249478140 80929092 168549048  33% /var/www

【问题讨论】:

    标签: mysql ssh vagrant mysqlimport vagrant-windows


    【解决方案1】:

    我很确定您的虚拟机中没有 Windows 10,是吗?至少错误消息包含bash,它通常是一个 Linux shell。

    所以,如果你有一些 Linux,通常以 C:\ 开头的路径不起作用。相反,Linux 文件系统中必须有一些挂载点映射到您的 Windows 文件系统(共享)。

    看看你的VM中的/vagrant文件夹,你很可能在这个目录的子文件夹中找到你的备份文件。尝试find /vagrant -name backup.sql 找到正确的路径。

    但是,/vagrant 只是 VirtualBoxes 中已挂载文件夹的默认设置。因此,如果它不存在,请在您的 VM 中尝试命令 mount | grep vboxsf。输出应该类似于:

    vagrant on /vagrant type vboxsf (uid=1000,gid=1000,rw)
    var_www on /var/www type vboxsf (uid=33,gid=33,rw)
    

    您的输出中的一个条目(不是本示例中的条目)将是您的文件所在的条目。

    您也可以使用命令df,它为您提供主机目录(例如C:\...)和VM 中的文件夹(例如/var/www)之间的直接关系。

    在你的情况下,这是最后一行

    192.168.33.1:/C/Users/moshe/Websites/Projects 249478140 80929092 168549048  33% /var/www
    

    这表明 C:\Users\moshe\Websites\Projects(在类 Unix 表示法中)映射到 /var/www。

    【讨论】:

    • 感谢您的回复。我认为我的虚拟机中没有 Windows 10。我使用 Scotch Box 设置 Vagrant(以防万一)。我不知道您所说的“挂载点”是什么意思(我对 Linux 不是很熟悉)。
    • 我添加了一些如何在框中找到文件的信息。
    • 关于您的 P.S. 2、我想正确的路径是/vagrant/.vagrant/backup.sql
    • 我尝试了该命令并收到以下消息:find: '/vagrant': No such file or directory。请注意,我从这个位置尝试过:C:\Users\moshe\Websites\Projects。我还运行了vagrant ssh 并尝试了相同的搜索并得到了相同的响应。请注意,我不太确定我的 VM 中的 /vagrant 文件夹是什么意思。我的虚拟机是指我运行vagrant up 的目录。你指的是.vagrant 文件夹(注意那里的点)?
    • df 输出中的最后一行显示您的 Windows 计算机上的 C:\Users\moshe\Websites\Projects 已安装到您的 VM 上的位置 /var/www。
    猜你喜欢
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2016-08-27
    • 2015-12-10
    • 2016-09-11
    相关资源
    最近更新 更多