我无法使用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
对我做错了什么的想法?
P.S。如果它是相关的 - 我正在使用Windows 10。
P.S。 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
答案 0 :(得分:3)
我很确定你的VM中没有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
。