MySQL命令执行脚本文件

本文介绍了解决Navicat导入导出大数据量速度慢及导入特定脚本报错的问题,提供了两种方法:一是通过命令行直接执行sql脚本;二是进入MySQL控制台后使用source命令执行。

原因:
1.客户端导入导出大数据量速度非常慢。
2. Navicat导入某些脚本会报错,而脚本本身没有问题。

方法一 :
windows下使用cmd命令执行,unix或linux在的其控制台下
【Mysql的bin目录】\mysql -u用户名 -p密码 -D要导入到的数据库名<【sql脚本文件路径全名】
windows:
D:\mysql\bin>mysql -uroot -p123456 -Dtest<d:\test\demo.sql
linux:
mysql> -uroot -p123456 -Dtest</usr/local/demo.sql

注意:
A、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略。
B、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:“C:\Program Files\mysql\bin\mysql” -u用户名 -p密码 -D数据库<【sql脚本文件路径全名】

方法二: 
进入mysql的控制台后,使用source命令执行
Mysql>source 【sql脚本文件的路径全名】 或 Mysql>\. 【sql脚本文件的路径全名】
source d:\test\demo.sql 
或者 
\. d:\test\demo.sql

导入多个文件:
新建一个demo.sql文件,里面写入多个source命令。
source d:/a1.sql;
source d:/a2.sql;
mysql>source d:/demo.sql;

MySQL执行脚本文件的命令主要有以下两种方式: ### 1. 在命令行中直接执行 可以通过在命令行中使用如下格式的命令来执行 SQL 脚本文件: ```bash mysql -u用户名 -p密码 -D数据库名 < /path/to/script.sql ``` 其中,`-u` 后面是数据库用户名,`-p` 后面是用户密码(注意:密码紧跟 `-p` 之间不能有空格),`-D` 指定要操作的数据库名称。如果 SQL 脚本文件中已经包含 `USE 数据库名;` 命令,则可以省略 `-D` 参数[^3]。 例如: ```bash mysql -uroot -pMyPassword -Dtest < /home/user/scripts/test.sql ``` ### 2. 在 MySQL 控制台内部执行 另一种方式是在登录到 MySQL 的控制台后,使用 `source` 或 `\.` 命令执行 SQL 脚本文件: 进入 MySQL 控制台: ```bash mysql -u用户名 -p密码 ``` 然后在 MySQL 提示符下执行: ```sql source /path/to/script.sql -- 或者使用简写形式 \. /path/to/script.sql ``` 这种方式适用于需要先对数据库进行一些交互式操作,再运行脚本的情况[^2]。 --- ### 示例代码 假设有一个 SQL 脚本文件位于 `/home/user/example.sql`,其内容如下: ```sql USE mydatabase; CREATE TABLE example_table ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) ); INSERT INTO example_table (name) VALUES ('Alice'), ('Bob'); ``` #### 方法一:通过命令行直接执行 ```bash mysql -uroot -pMyPassword < /home/user/example.sql ``` 由于该脚本中已指定 `USE mydatabase;`,因此无需额外添加 `-Dmydatabase` 参数[^3]。 #### 方法二:在 MySQL 控制台中执行 ```bash mysql -uroot -pMyPassword ``` 进入控制台后执行: ```sql source /home/user/example.sql ``` --- ### 注意事项 - 确保 SQL 文件路径正确且当前用户对该文件具有读取权限。 - 如果脚本中包含错误或警告信息,在执行过程中可能会中断,建议提前检查 SQL 内容。 - 使用 `-h` 和 `-P` 可以指定远程主机和端口,如: ```bash mysql -h127.0.0.1 -P3306 -uroot -pMyPassword < /opt/mysql-8.0.32/autoExecute.sql ```[^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值