Linux怎么执行SQL

在Linux中执行SQL语句主要通过命令行工具实现: ,1. **MySQL/MariaDB**:使用mysql -u 用户名 -p -e "SQL语句" ,2. **PostgreSQL**:通过psql -U 用户名 -c "SQL语句" ,3. **SQLite**:直接运行sqlite3 数据库文件 "SQL语句" ,也可将SQL写入文件,用< 文件重定向执行,或进入交互命令行操作。

命令行工具(最常用)

MySQL/MariaDB

步骤:

Linux怎么执行SQL

  1. 安装客户端

    # Ubuntu/Debian
    sudo apt install mysql-client
    # CentOS/RHEL
    sudo yum install mysql
  2. 连接数据库

    mysql -u 用户名 -p -h 主机地址 -P 端口号 数据库名
    • 系统提示输入密码(推荐方式,避免密码暴露在历史记录中)。
    • 示例:mysql -u root -p -h 127.0.0.1 mydb
  3. 执行SQL语句

    • 单条语句
      SELECT * FROM users;
    • 执行SQL文件
      mysql -u 用户 -p 数据库名 < 文件路径.sql
    • 退出客户端:输入 exitq

PostgreSQL

步骤:

  1. 安装客户端

    Linux怎么执行SQL

    # Ubuntu/Debian
    sudo apt install postgresql-client
    # CentOS/RHEL
    sudo yum install postgresql
  2. 连接数据库

    psql -U 用户名 -h 主机地址 -d 数据库名 -p 端口
    • 示例:psql -U postgres -d testdb
  3. 执行SQL

    • 交互式输入SQL语句。
    • 执行SQL文件
      psql -U 用户 -d 数据库名 -f 文件路径.sql

图形化工具(适合可视化操作)

DBeaver(跨平台支持)

  • 安装
    sudo snap install dBeaver-ce  # Snap方式
    # 或官网下载.tar.gz解压运行
  • 使用
    1. 创建数据库连接(支持MySQL、PostgreSQL、Oracle等)。
    2. 在“SQL编辑器”中输入语句,点击执行按钮(▶️)。

phpMyAdmin(Web版MySQL管理)

  • 安装
    sudo apt install phpmyadmin  # 自动配置Apache/Nginx
  • 访问 http://服务器IP/phpmyadmin,登录后直接执行SQL。

通过脚本/编程语言执行

Shell脚本集成

# MySQL示例
result=$(mysql -u root -p"密码" -e "SELECT COUNT(*) FROM users;" mydb)
echo "用户数量: $result"

安全提示:避免在脚本中硬编码密码,改用配置文件(如 ~/.my.cnf)或环境变量。

Python脚本(使用库)

import mysql.connector
db = mysql.connector.connect(
  host="localhost",
  user="root",
  password="密码",
  database="mydb"
)
cursor = db.cursor()
cursor.execute("SELECT * FROM products")
for row in cursor.fetchall():
    print(row)

安全注意事项

  1. 密码保护

    • 使用 mysql_config_editor 保存加密凭证:
      mysql_config_editor set --login-path=别名 --host=主机 --user=用户 --password

      连接时直接调用:mysql --login-path=别名

      Linux怎么执行SQL

  2. 权限最小化
    为操作分配仅需的数据库权限,避免使用 root 账户。

  3. 敏感信息隔离
    将数据库连接信息存储在环境变量或配置文件中(权限设为 600)。


常见问题解决

  • 连接拒绝:检查防火墙、数据库是否监听 0.0.0 及用户远程权限。
  • 命令未找到:确认客户端工具已安装(which mysql 验证路径)。
  • 编码问题:执行前声明字符集,
    mysql --default-character-set=utf8mb4 -u 用户 -p

场景 推荐方式
快速单次查询 命令行交互模式
批量执行SQL文件 mysql -u 用户 -p db < file.sql
日常管理/数据分析 DBeaver或phpMyAdmin
自动化任务(如备份) Shell/Python脚本集成

通过灵活选择工具并遵循安全规范,可高效管理Linux环境下的SQL操作,官方文档始终是最权威的参考来源。

引用说明参考MySQL官方文档(dev.mysql.com/doc)、PostgreSQL手册(postgresql.org/docs)及Linux手册页(man mysql),安全实践依据OWASP数据库安全指南。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/23346.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月14日 05:12
下一篇 2025年6月14日 05:20

相关推荐

  • Linux如何查看网络连接?

    Linux查看网络状态常用命令:ifconfig或ip addr查看IP地址和接口信息;netstat或ss检查网络连接和端口;ping测试网络连通性;traceroute跟踪路由路径。

    2025年6月28日
    300
  • Linux怎么查hostid?

    在Linux系统中查看hostid,直接执行 hostid 命令即可,该命令会输出一个唯一的十六进制标识符(如007f0101),通常用于软件授权等场景。

    2025年6月2日
    700
  • Linux如何重启网络?

    Linux重启网络常用命令: ,1. sudo systemctl restart NetworkManager(主流发行版) ,2. sudo service networking restart(Debian/Ubuntu旧版) ,3. sudo nmcli networking off && sudo nmcli networking on(NetworkManager用户) ,根据系统选择对应命令使配置更改后生效。

    2025年6月19日
    000
  • 如何用u盘做linux系统盘

    ISO写入U盘,设为可启动,BIOS选U盘引导安装

    2025年7月26日
    000
  • linux不同网段如何访问ftp

    Linux中,不同网段访问FTP需先确保FTP服务器配置正确且防火墙允许相应端口,可通过FTP客户端软件或命令行工具,输入服务器IP地址、端口号、用户名和密码进行连接

    2025年7月22日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN