如何通过PuTTY将本地文件夹中的数据库导入至CentOS生产服务器
嗨,你遇到的问题其实很典型——PuTTY里敲的命令是在CentOS服务器上执行的,服务器根本看不到你本地Windows的C盘路径,所以自然会报“目录未找到”。下面给你两种靠谱的解决方法,选哪种看你需求:
方法一:先把本地SQL文件传到服务器,再导入
这是最稳妥的方式,步骤如下:
在本地打开命令提示符(CMD/PowerShell),别用PuTTY的终端(PSCP是本地工具)。如果你的PuTTY安装在默认路径,直接执行以下命令(替换成你的实际信息):
pscp "C:\path to database.file.sql" root@你的服务器IP:/tmp/执行后会提示你输入CentOS服务器的root密码,输入后文件就会传到服务器的
/tmp目录下(这个目录是临时目录,权限宽松适合传文件)。如果你找不到pscp命令,就用完整路径执行,比如:
"C:\Program Files\PuTTY\pscp.exe" "C:\path to database.file.sql" root@你的服务器IP:/tmp/回到PuTTY的服务器终端,执行MySQL导入命令:
mysql -u root -p 你的数据库名 < /tmp/database.file.sql输入MySQL的root密码后,就会开始导入数据了。
方法二:直接用本地MySQL客户端远程导入(无需传文件)
如果你本地已经安装了MySQL客户端(比如和本地MySQL一起装的),可以直接从本地连接远程服务器导入,省掉传文件的步骤:
- 在本地打开命令提示符(CMD/PowerShell),执行以下命令(替换成你的实际信息):
mysql -u root -p -h 你的服务器IP 你的数据库名 < "C:\path to database.file.sql" - 输入远程服务器上MySQL的root密码,等待导入完成即可。
注意:这种方法需要你的CentOS服务器的MySQL允许远程连接(默认可能关闭),如果怕不安全,可以先通过PuTTY建立SSH隧道再执行,或者临时开放权限后再关闭。
额外提醒
- 如果你的文件路径里有空格,Windows下一定要用双引号把路径包起来;Linux下如果路径有空格,要么用双引号,要么用反斜杠转义(比如
/tmp/my file.sql写成/tmp/my\ file.sql)。 - 导入前最好确认目标数据库已经在CentOS服务器上创建好了,不然会报错。
内容的提问来源于stack exchange,提问作者Armature
相关产品推荐
相关产品推荐

