我正在用这个教程在我的用户目录下创建一个简单的 mysqldump。我已经.my.cnf
在我的根目录中为它创建了一个配置文件,并设置了密码,并在我的用户目录下创建了一个文件夹来放置转储。我可以以 root 身份登录 mysql。
我尝试在那里执行命令。它返回一个错误,指出我使用的命令权限被拒绝。请记住,我没有尝试手动创建数据库,因为我假设如果不存在数据库,sql dump 也会创建数据库。
这是我正在使用的命令...
sudo mysqldump --add-drop-table --databases myDatabaseName > /home/username/$(/bin/date +\%Y-\%m-\%d).sql.bak
答案1
我创建了另一个用户作为我,因为我甚至无法以 root 权限进入 mysql。
这很有帮助。我为自己创建了一个新的 mysql 用户。
mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart
这种方法无法创建转储,但根据 Micahel 的建议,我只需更改出现拒绝访问错误的文件夹的权限,即可让我自己对其进行写入。同时,也使用户组可以读取它。
chmod 740 jordan
chown jordan:jordan /home/jordan/tutorialinux/backups/db/
之后我就可以创建转储了。