我离开Linode是因为我没有必要的Linux系统管理技能;在我完成过渡到对新手更友好的服务之前,我需要下载MySQL数据库的内容。是否有一种方法可以从命令行执行此操作?
您可以使用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选项。它会提示你,而不是记录它。
只需输入mysqldump或mysqldump——cmd中的帮助将显示如何使用
下面是我的cmd结果
C:\Program Files\MySQL\MySQL Server 5.0\bin>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
如果你正在运行MySQL而不是默认端口:
mysqldump.exe -u username -p -P PORT_NO database > backup.sql
在windows上,您需要指定mysqldump.exe所在的mysql bin。
cd C:\xampp\mysql\bin
mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql
将其保存到一个文本文件中,如backup.cmd
如果从远程服务器下载,这里有一个简单的例子:
mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql
-p表示输入密码,与db_name无关。输入命令后,将提示输入密码。输入它并按enter。
在最新版本的mysql中,至少在我的版本中,你不能直接在命令中输入你的pass。
你必须跑:
mysqldump -u[新]-p db_name > db_backup.sql
然后它会要求输入密码。
不要进入mysql,只要打开命令提示符,然后直接输入:
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
进入MySQL安装目录,并从那里打开cmd。 然后执行下面的命令来获得数据库的备份。
mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql
如果你有一个名为archiedb的数据库,使用这个:
mysql -p <password for the database> --databases archiedb > /home/database_backup.sql
假设这是Linux,选择备份文件保存的位置。
对于Windows用户,您可以在mysql文件夹中运行该命令
如。
cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql
对于那些想要在命令行中输入密码的人。这是可能的,但建议在引号内传递,这样特殊字符就不会引起任何问题。
mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql
注意:这一步只在转储MySQL文件之后进行(上面的大多数答案都解决了这个问题)。
它假设您在远程服务器上有上述转储文件,现在您想将其保存到本地计算机。
若要将转储的.sql文件从远程服务器下载到本地计算机,请执行
scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%.%MM%.%DD%.%HH%.%Min%.%Sec%"
set drive=your backup folder
set databaseName=your databasename
set user="your database user"
set password="your database password"
subst Z: "C:\Program Files\7-Zip"
subst M: "D:\AppServ\MySQL\bin"
set zipFile="%drive%\%databaseName%-%datestamp%.zip"
set sqlFile="%drive%\%databaseName%-%datestamp%.sql"
M:\mysqldump.exe --user=%user% --password=%password% --result-file="%sqlFile%" --databases %databaseName%
@echo Mysql Backup Created
Z:\7z.exe a -tzip "%zipFile%" "%sqlFile%"
@echo File Compress End
del %sqlFile%
@echo Delete mysql file
pause;
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:\
推荐文章
- MySQL对重复键更新在一个查询中插入多行
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- MySQL:如何复制行,但改变几个字段?
- 不能删除或更新父行:外键约束失败
- Mysql错误1452:不能添加或更新子行:外键约束失败
- MySQL DISTINCT在GROUP_CONCAT()上
- 第一次设计数据库:我是否过度设计了?
- 如何使用xargs复制名称中有空格和引号的文件?
- MySQL选择一个列DISTINCT,与其他列相对应
- 错误1022 -不能写;表中重复的键
- 如何修改列和更改默认值?
- 如何在MySQL 8.0中授予root用户所有权限
- mysqld_safe UNIX套接字文件目录“/var/run/mysqld”不存在
- 配置系统初始化失败
- 快速简单的方法迁移SQLite3到MySQL?