我离开Linode是因为我没有必要的Linux系统管理技能;在我完成过渡到对新手更友好的服务之前,我需要下载MySQL数据库的内容。是否有一种方法可以从命令行执行此操作?


当前回答

在最新版本的mysql中,至少在我的版本中,你不能直接在命令中输入你的pass。

你必须跑:

mysqldump -u[新]-p db_name > db_backup.sql

然后它会要求输入密码。

其他回答

mysqldump是MySQL目录下的另一个程序(.exe文件)

程序文件\MySQL\MySQL Server 8.0\bin

步骤1:首先,你必须找到该路径并从文件夹中打开CMD。

步骤2:然后在CMD中输入mysqldump


它应该显示如下

Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

步骤3:然后键入这个命令

mysqldump -u [user_name] -p [database_name] > D:\db_dump.sql

注意: 您应该为输出文件提供一个绝对路径。 这里我提供D:\

对于那些想要在命令行中输入密码的人。这是可能的,但建议在引号内传递,这样特殊字符就不会引起任何问题。

mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql

您可以使用mysqldump命令行函数来实现这一点。

例如:

如果它是一个完整的DB,那么:

   $ mysqldump -u [uname] -p db_name > db_backup.sql

如果都是db,那么:

   $ mysqldump -u [uname] -p --all-databases > all_db_backup.sql

如果它是一个DB中的特定表,那么:

   $ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql

你甚至可以使用gzip自动压缩输出(如果你的DB非常大):

   $ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz

如果你想远程执行这个操作,并且你有访问服务器的权限,那么下面的方法可以工作(假设MySQL服务器的端口是3306):

   $ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql

它应该将.sql文件放到运行命令行的文件夹中。 EDIT:更新以避免在CLI命令中包含密码,使用不带密码的-p选项。它会提示你,而不是记录它。

注意:这一步只在转储MySQL文件之后进行(上面的大多数答案都解决了这个问题)。

它假设您在远程服务器上有上述转储文件,现在您想将其保存到本地计算机。

若要将转储的.sql文件从远程服务器下载到本地计算机,请执行

scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir

对于Windows用户,您可以在mysql文件夹中运行该命令

如。

cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql