是否可以在不提供每个数据库的用户名和密码的情况下转储所有数据库?该服务器有 10 个数据库,每个数据库的用户名和密码都不同。
我将以 root 身份登录(centOS)
我使用了以下内容,但出现访问错误
mysqldump --all-databases > gzip > bak-sql.zip
[固定的]
mysqldump -u admin --password='password' --all-databases | gzip -7 > bak-sql.zip
[相关主题]
https://stackoverflow.com/questions/8444108/how-to-use-mysql-dump
答案1
[编辑]
好的,我用过:
mysqldump -u admin --password='password' database-name | gzip -7 > bak-sql.zip
我的假设是正确的,正如@wurtel 指出的那样(linux 将 linux 用户与 MySQL 用户关联)。
我使用 phpMyAdmin 登录到 MySql,然后行政用户拥有所有权限,但未与任何数据库关联!(plesk 面板)所以我必须使用admin1 username1 databae1
每个数据库的格式并为每个数据库执行任务。最好的方法是编写一个带有 for 循环的脚本,将每个数据库写入不同的文件。
也是| gzip -7 > file
正确的,而> gzip > file
不是错误的。
因为我的密码有特殊字符,所以我出现访问错误,所以我不得不使用标志
--password='password'
代替-ppassword
答案2
尝试这个(来自 mysql 文档):
首先为 mysql 创建一个配置文件,并确保只有您的帐户可以访问它:
touch ~/.my.cnf
chmod 600 ~/.my.cnf
在配置文件中添加用户名密码组合:
[mysqldump]
user=databseuser12
password=otFRD?17*<8X0G
然后您可以无需密码运行 mysqldump 命令:
mysqldump --user=databseuser12 --host=mysql.example.com forumsalpha | gzip -9 > /home/myuser/backups/dbs/mysql-forumsalpha.sql.gz