我有一个相当大的数据库,所以我想用命令提示符导出它,但我不知道如何。

我正在使用WAMP。


当前回答

我试图转储在docker上运行的db,并提出了以下命令来实现相同的目的:

Docker exec <container_id/name> /usr/bin/mysqldump -u <db_username>——password=<db_password> db_name > .sql

希望这能有所帮助!

其他回答

找到你的mysql实例:

which mysql

如果这是正确的,然后用以下方法导出(否则导航到bin中的mamp文件夹中的mysql实例):

mysqldump -u [username] -p [password] [dbname] > filename.sql

如果你想在同一时间压缩它:

mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz

然后你可以在服务器之间移动这个文件:

scp user@xxx.xxx.xxx.xxx:/path_to_your_dump/filename.sql.gz your_detination_path/

(其中xxx.xxx.xxx.xxx为服务器IP地址)

然后导入:

gunzip filename.sql.gz | mysql -u [user] -p [password] [database]

我试图转储在docker上运行的db,并提出了以下命令来实现相同的目的:

Docker exec <container_id/name> /usr/bin/mysqldump -u <db_username>——password=<db_password> db_name > .sql

希望这能有所帮助!

mysqldump --no-tablespaces -u username -p pass database_name > db_backup_file.sql

在此路径下进入命令提示符,

C:\Program Files (x86)\MySQL\MySQL服务器5.0\bin>

然后输入以下命令导出数据库(-p后没有空格)

mysqldump -u[用户名]-p[用户名]你的数据库>[存档]wantedsqlfile.sql

所有这些解决方案(使用>重定向器字符)的问题是您从stdout写入转储,这可能会破坏数据库中某些字符的编码。

如果你有字符编码问题。例如:

错误1064(42000):你有一个错误的SQL语法;检查手册,对应于您的MySQL服务器版本的正确语法使用近…

然后,你必须使用-r选项来写入文件。

MySQL

mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump.sql

使用码头工人

docker exec --rm -v $pwd:dump -it mysql:5:7 mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump/dump.sql

注意:这会将当前路径挂载为实例中的转储。

我们在这里找到了答案

相反,不要使用<将转储文件导入数据库,同样,您的非utf8字符可能不会被传递;但更喜欢源选项。

mysql -u user -pYourPasswordYouNowKnowHow --default-character-set=utf8 your-database
mysql> SET names 'utf8'
mysql> SOURCE dump.sql