这应该快速而简单,但经过对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'等),结果相同。
我很尴尬,因为我确信这将非常简单,或者只是揭示了我知识中的一个空洞(基本)漏洞。 ..但请帮助; - )
答案 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