使用putty导入sql.gz文件并将其插入数据库

bab*_*ian 67 mysql import putty gzip

我想sql.gz用SSH 将文件插入我的数据库.我该怎么办?

例如,我有一个名称为电话号码的数据库numbers.sql.gz,这种类型的文件是什么以及如何将此文件导入我的数据库?

小智 111

使用像putty这样的shell程序登录到您的服务器.

在命令行上键入以下命令

zcat DB_File_Name.sql.gz | mysql -u username -p Target_DB_Name
Run Code Online (Sandbox Code Playgroud)

哪里

DB_File_Name.sql.gz =要导入的sql.gz文件的完整路径

username =你的mysql用户名

Target_DB_Name =要导入数据库的数据库名称

当您在命令行中按Enter键时,它将提示输入密码.输入您的MySQL密码.

你完成了!

  • gzcat,实际上. (12认同)
  • 如果您想避免浪费磁盘空间(和时间),这是最佳答案. (9认同)

Mic*_*ski 58

该文件是一个gzip压缩的SQL文件,几乎可以肯定是一个纯文本文件,其中包含.sql作为扩展名.你需要做的第一件事是通过scp将文件复制到数据库服务器.. 我认为PuTTY是pscp.exe

# Copy it to the server via pscp
C:\> pscp.exe numbers.sql.gz user@serverhostname:/home/user
Run Code Online (Sandbox Code Playgroud)

然后SSH到您的服务器并解压缩该文件 gunzip

user@serverhostname$  gunzip numbers.sql.gz
user@serverhostname$  ls 

numbers.sql
Run Code Online (Sandbox Code Playgroud)

最后,使用<输入重定向运算符将其导入MySQL数据库:

user@serverhostname$  mysql -u mysqluser -p < numbers.sql
Run Code Online (Sandbox Code Playgroud)

如果numbers.sql文件没有创建数据库但希望已经存在,那么您还需要在命令中包含数据库:

user@serverhostname$  mysql -u mysqluser -p databasename < numbers.sql
Run Code Online (Sandbox Code Playgroud)

如果您能够从外部直接连接到MySQL服务器,那么您可以使用本地MySQL客户端而不必复制和SSH.在这种情况下,您只需要一个可以在Windows上解压缩.gz文件的实用程序.我相信7zip会这样做,或者你可以获得Windows 的gzip/gunzip二进制文件.

  • 那太旧了,需要多个步骤。请按照@seshu的回答进行操作。 (2认同)

fee*_*ela 49

没有单独的步骤来提取存档:

# import gzipped-mysql dump
gunzip < DUMP_FILE.sql.gz | mysql --user=DB_USER --password DB_NAME
Run Code Online (Sandbox Code Playgroud)

我使用上面的代码片段重新导入mysqldump-backups,以及以下内容用于备份它.

# mysqldump and gzip (-9 ? highest compression)
mysqldump --user=DB_USER --password DB_NAME | gzip -9 > DUMP_FILE.sql.gz
Run Code Online (Sandbox Code Playgroud)

  • @Wasim在命令中恢复了没有"PASSWORD"的版本.除非绝对必要,否则不应直接在命令行上指定密码.在大多数系统上,shell命令存储在历史文件中,如`.bash_history`,因此命令中直接指定的密码也存储在该历史文件中.如果省略密码,MySQL将以交互方式提示.如果确实需要在命令中包含密码,则应使用空格字符缩进命令,这会阻止命令记录在shell历史记录中. (3认同)