为什么db表上的基本MySQLdump失败并显示“权限被拒绝”

时间:2011-12-29 02:39:31

标签: mysql mysqldump

这应该快速而简单,但经过对Google的研究,我仍然感到难过。我主要是新手:服务器管理员,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'等),结果相同。

我很尴尬,因为我确信这将非常简单,或者只是揭示了我知识中的一个空洞(基本)漏洞。 ..但请帮助; - )

7 个答案:

答案 0 :(得分:23)

答案来自MySQL名单上有帮助的人:
正如你们(Anson和krazybean)所想的那样 - 我没有得到写/usr/local/mysql/bin/ dir的许可。但是从任何其他目录开始,对mysqldump的调用都失败了,因为我的shell PATH var(如果我说的那样)尚未设置为从另一个目录处理mysqldump。另外,由于某些原因我还不太了解,我还需要在输出上使用完整路径,即使我有效地调用了mysqldump,即使我有权写入输出dir(例如~/myTestDumpedTable.sql。所以这是我的票,现在(快速回答):

Govind% /usr/local/mysql/bin/mysqldump -uroot -p myDBname myTableName > /Users/Govind/myTestDumpedTable.sql

您可以写入shell用户有权访问的任何地方。我刚刚选择了我的用户主页。

希望有一天能帮到某人 欢呼声。

答案 1 :(得分:3)

一般来说,我总是坚持定义主机名,但是因为你是root用户似乎不是问题,我会问你在哪里写这个?转储到>时会发生什么〜/ myTestDumpedTable.sql

答案 2 :(得分:1)

查看mysqldump的手册页以获取正确的参数用法。您需要-u标记和用户名之间的空格,如下所示:

mysqldump -u root -p myDBname myTableName > myTestDumpedTable.sql

或者你可以做

mysqldump --user=root -p myDBname myTableName > myTestDumpedTable.sql

由于您没有在参数列表中提供密码,因此系统会提示您输入密码。您始终可以在参数列表中提供密码,但缺点是它以明文形式显示,并将显示在shell的命令历史记录中。

答案 3 :(得分:1)

就我而言,我使用$ sudo mkdir /directory/to/store/sql/files创建了目录。该目录的所有者是root。因此,使用$ sudo chown me:me /directory/to/store/sql/files更改所有者并将权限更改为$ sudo chmod 744 /directory/to/store/sql/files可能对我有所帮助。

答案 4 :(得分:0)

您应该提供SQL备份文件的完整路径,例如

mysqldump -u root -p databasexxx > /Users/yourusername/Sites/yoursqlfile.sql

答案 5 :(得分:0)

我认为您错过了命令中的./,请尝试: 在里面

/usr/local/mysql/bin$ ./mysqldump -u root -p myDBname > "/Users/yourUserName/Documents/myTestDumpedTable.sql"

所以它是一个脚本,在linux中你用./myscript执行一个脚本。 我今天发现它,对我来说,在我的Mac OSX中,我没有使用-p,可能因为不需要密码,不知道。我的意思是,也尝试:

./mysqldump -u root myDBname > "/Users/yourUserName/Documents/myTestDumpedTable.sql"

答案 6 :(得分:0)

mysqldump不适用于sudo,如果您正在使用

sudo mysqldump,然后尝试以下解决方案:

sudo su
mysqldump -u[username] -p[password] db_name > newbackupfile.bkp
相关问题