这应该是快速和简单的,但在谷歌上进行了大量研究后,我仍然感到困惑。我主要是新手:服务器管理员、CLI、MySQL。
我正在本地开发我的 PHP 站点,现在需要将一些新的 MySQL 表从我的本地开发设置移动到远程测试站点。对我来说,第一步就是转储表,一次一个。
我像这样成功登录到我的本地 MySQL:
Govind% /usr/local/mysql/bin/mysql -uroot
但是在这个目录中(并且没有登录到 MySQL):
/usr/local/mysql/bin
...当我尝试这个时
mysqldump -uroot -p myDBname myTableName > myTestDumpedTable.sql
..然后我不断得到这个:
"myTestDumpedTable.sql: Permission denied."
如果我对其进行任何更改(尝试转储整个数据库、删除“-p”等),结果相同。
我很尴尬,因为我确信这将非常简单,或者只是揭示了我知识中的一个巨大(基本)漏洞。 .. 但请帮忙 ;-)
最佳答案
答案来自 MySQL 列表中一位乐于助人的人:
正如你们(Anson 和 krazybean)所想的那样 - 我没有写入 /usr/local/mysql/bin/
目录的权限。但是从任何其他目录开始,对 mysqldump
的调用都失败了,因为我的 shell PATH var(如果我说得对的话)尚未设置为处理来自另一个目录的 mysqldump
。另外,出于某种我还不太明白的原因,我还需要在 输出 上使用完整路径,即使我正在有效地调用 mysqldump,即使我有权写入输出dir(例如 ~/myTestDumpedTable.sql
。所以这是我的票,现在(快速回答):
Govind% /usr/local/mysql/bin/mysqldump -uroot -p myDBname myTableName > /Users/Govind/myTestDumpedTable.sql
您可以写入任何您的 shell 用户有权这样做的地方。我刚刚选择了用户的主目录。
希望有一天这对某人有所帮助。
干杯。
关于MySQL:为什么数据库表上的基本 MySQLdump 失败并显示 "Permission denied",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663454/