linux执行sql脚本命令
linux执行sql脚本命令详细介绍
在 Linux 系统中执行 SQL 脚本,通常需要通过数据库对应的命令行客户端实现。以下是常见数据库的执行方法:
1. MySQL / MariaDB
使用 mysql 命令行客户端执行 SQL 脚本:
bash
mysql your_database /path/to/your_script.sql
- 交互模式输入密码(更安全,避免密码明文显示):bash
mysql your_database /path/to/your_script.sql - 将输出重定向到文件:bash
mysql your_database /path/to/your_script.sql output.log
2. PostgreSQL
使用 psql 命令行客户端执行 SQL 脚本:
bash
psql /path/to/your_script.sql
- 交互模式输入密码(推荐):bash
psql /path/to/your_script.sql - 静默模式(仅显示错误):bash
psql /path/to/your_script.sql
3. SQLite
直接通过 sqlite3 命令指定数据库文件并执行脚本:
bash
sqlite3 your_database.db /path/to/your_script.sql
- 如果脚本包含分号(;),需确保格式正确(SQLite 依赖分号作为语句分隔符)。
4. 通用注意事项
- 脚本路径:
- 脚本文件路径可以是绝对路径(如
/home/user/script.sql)或相对路径(如./script.sql,需确保当前目录正确)。
- 脚本文件路径可以是绝对路径(如
- 权限:
- 确保脚本文件有读取权限(
chmod +r your_script.sql)。
- 确保脚本文件有读取权限(
- 变量替换:
- 如果脚本中包含变量(如文件名、时间戳),可先用文本工具替换(如
sed),再执行:bashyour_script.sql temp.sql mysql db temp.sql
- 如果脚本中包含变量(如文件名、时间戳),可先用文本工具替换(如
- 事务控制:
- 部分数据库(如 MySQL)默认自动提交,如需事务管理,可在脚本开头添加
START TRANSACTION;,结尾添加COMMIT;或ROLLBACK;。
- 部分数据库(如 MySQL)默认自动提交,如需事务管理,可在脚本开头添加
根据你使用的数据库,选择对应的命令即可。执行前建议先备份数据,确保脚本逻辑正确。