我想备份 /opt/lampp/var/mysql 中可用的 Xampp 数据库,但我做不到。我使用了以下命令
/opt/lampp/htdocs/vivek.s$ sudo mysqldump -u root -p vive.se > 07feb.sql
和
/opt/lampp/htdocs/vivek.s$ sudo mysqldump -h root -u root -p vive.se > 07feb.sql
结果是一样的
bash:07feb.sql:权限被拒绝
然后我用
须藤-s
sudo mysqldump -u root -p vive.se > 07feb.sql
结果是
sudo:mysqldump:找不到命令
它在/opt/lampp/htdocs/vivek.s中创建了一个名为07feb.sql的空文件
当我看到我的朋友使用相同的命令并且他得到了 95 MB 的数据库备份时,出了什么问题。我应该尝试什么。
谢谢
问题是您无权以
/opt/lampp/htdocs/vivek.s
普通用户的身份进行写入。以 root 身份运行mysqldump
会提升 mysqldump(不必要地),但重定向是在shell的权限下发生的- 以您的普通用户身份运行。有一些解决方法:
sudo -i
通过 eg或启动 root shellsudo -s
。您不应该使用 sudo 来运行下一个命令 - mysqldump。使用
tee
:mysqldump -u root -p vive.se | sudo tee 07feb.sql > /dev/null
这将以 root 身份运行该进程
tee
,将一份副本写入文件,并将 stdout 重定向到/dev/null
我们不需要的位置。另一种解决方法是将备份写入您的用户具有写入权限的位置,例如您的主目录。