将sql脚本文件导入数据库

命令行导入:mysql -u root -p your_database < /path/to/your_script.sql 图形化导入:MySQLWorkbench > Server > Data Import > Import from Self-Contained File > 选择文件
这就是坑:别在导入前不备份。

实操提醒:确保SQL脚本在导入前经过测试,避免导入错误导致数据丢失。

如何用命令行执行mysql的sql文件

哎哟,这事儿啊,得说两句。
咱们先得打开那个命令行界面,Windows里头搜“命令提示符”,Linux或Mac就终端那玩意儿。
然后呢,登录MySQL数据库,这得用mysql -u用户名 -p,记得输入密码,别泄露了哈。
登录成功后,得选个数据库,用USE数据库名,确保数据库存在,你有权限。

接下来,执行SQL文件,有两种方法。
第一种,用source命令,得写全路径,比如source /path/to/file.sql。
第二种,简单点,直接.文件名.sql,前提是文件得在当前目录。
不管哪种,都得保证SQL文件里头没错,你有权限执行里面的操作。

说实话,我当时也没想明白这俩命令的差别,后来才发现一个是带路径的,一个是当前目录的。
反正,操作正确了,SQL文件里的内容就能在数据库里头生效了。
就这样吧,希望这回明白了。

如何用命令执行sql文件

说实话,用命令行跑SQL文件这事儿,我当年刚接手项目时也头大。
不过摸着石头过河,慢慢也就顺了。
就拿MySQL来说吧,最核心那招就一个命令,但里头的门道可不少。

比如在Linux系统上,我经常碰到路径带空格的情况。
记得有一次在服务器上执行脚本,直接写成mysql -u root -p mydb < /home/user/scripts/my_script.sql,结果提示找不到文件。
后来才知道,Linux对路径空格特别敏感,必须用双引号全包起来,写成mysql -u root -p mydb < "/home/user/scripts/my_script.sql"才行。
这细节真是得抠明白了。

Windows那边又不一样。
我在客户现场搞过一次系统迁移,Windows环境下路径反斜杠得特别注意。
有次直接用mysql -u root -p mydb < C>后来改用双引号包裹路径,mysql -u root -p mydb < "C:\scripts\my_script.sql",这才正常。
Windows和Linux的命令行思维差好多,这点得提前说明白。

密码问题我也栽过跟头。
有次写脚本自动执行,把密码也写进去了,结果数据库直接连不上。
后来发现是命令写错了,把-p和用户名连着写,中间没空格,系统就当密码是用户名的一部分了。
正确的写法是mysql -u root -pmydb ...,执行完会提示输入密码,这样才对。

至于编码问题,我强烈建议统一用UTF-8 有次接手一个旧项目,SQL文件是GBK编码,直接导入就乱码。
后来用iconv -f GBK -t UTF-8 input.sql > output.sql转换后才搞定。
不过现在很多新项目都要求用UTF-8 了,能省不少事。

大文件执行我试过优化。
有次有个几百MB的迁移脚本,直接跑超慢。
后来在Linux上用split命令拆分,每1 0万条记录拆一个文件,分批执行效率高多了。
或者执行前临时关闭二进制日志,SET sql_log_bin=0;,也能提速不少。

批量执行多个文件我也用过。
在Linux上写个shell脚本: bash for file in /path/to/sql_files/.sql; do mysql -u root -pmydb < "$file" done
这个技巧特别实用,批量导入数据时能省很大劲。

不过说实话,现在很多IDE都自带数据库工具,命令行操作反而不常用了。
但要说最底层的操作,还是得会命令行。
我带新人时,第一件事就是教他们这个基础命令,虽然简单,但关键时刻真能派上用场。