尝试创建 mysqldump 后权限被拒绝,即使在创建 .my.cnf 文件后也是如此

尝试创建 mysqldump 后权限被拒绝,即使在创建 .my.cnf 文件后也是如此

我正在用这个教程在我的用户目录下创建一个简单的 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/

之后我就可以创建转储了。

相关内容