如何用命令行访问数据库?

命令行工具通过终端直接连接数据库,支持执行SQL查询、管理数据和进行批量操作,是数据库管理员和开发者进行高效交互与维护的基础方式。

在Linux系统中访问数据库是开发人员、系统管理员和数据分析师的常见任务,Linux因其稳定性、安全性和开源生态,成为运行数据库服务的首选平台,本文将详细介绍在Linux环境下访问数据库的多种方法,涵盖命令行工具、编程语言接口和图形化工具,并强调安全最佳实践。
命令行是最直接高效的访问方式,适合管理、调试和自动化任务。

MySQL/MariaDB

  • 安装客户端
    sudo apt install mysql-client   # Debian/Ubuntu
    sudo yum install mysql          # CentOS/RHEL
  • 连接数据库
    mysql -u 用户名 -p -h 主机地址 -P 端口

    输入密码后进入交互式环境,执行SQL语句(如 SHOW DATABASES;)。

PostgreSQL

  • 安装客户端
    sudo apt install postgresql-client  # Debian/Ubuntu
    sudo yum install postgresql         # CentOS/RHEL
  • 连接数据库
    psql -U 用户名 -h 主机地址 -d 数据库名 -p 端口

    支持元命令(如 \l 查看数据库)。

SQLite

无需安装客户端,直接使用内置命令:

sqlite3 /路径/数据库文件.db

执行 .tables 查看表,.exit 退出。

Redis

redis-cli -h 主机地址 -p 端口

使用 KEYS * 查看键,GET key 获取值。


编程语言访问数据库

通过代码集成数据库操作,适合应用开发。

Python 示例

使用 mysql-connector-python 库:

import mysql.connector
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="密码",
    database="testdb"
)
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())
conn.close()

安装驱动:pip install mysql-connector-python

PHP 示例

通过 PDO 扩展连接 MySQL:

<?php
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
$user = 'root';
$pass = '密码';
try {
    $pdo = new PDO($dsn, $user, $pass);
    $stmt = $pdo->query("SELECT * FROM users");
    print_r($stmt->fetchAll());
} catch (PDOException $e) {
    echo "错误: " . $e->getMessage();
}
?>

Node.js 示例

使用 mysql2 包:

const mysql = require('mysql2/promise');
async function queryDB() {
  const conn = await mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '密码',
    database: 'testdb'
  });
  const [rows] = await conn.execute('SELECT * FROM users');
  console.log(rows);
  conn.end();
}
queryDB();

安装:npm install mysql2


图形化工具(GUI)

适合可视化操作和数据分析。

  1. DBeaver

    • 支持 MySQL、PostgreSQL、Oracle 等20+数据库。
    • 安装:
      sudo snap install dbeaver-ce  # Snap方式
      # 或下载.deb/.rpm包安装
  2. phpMyAdmin(Web版)

    • 专为MySQL设计,通过浏览器访问。
    • 安装:
      sudo apt install phpmyadmin  # Debian/Ubuntu

      访问 http://服务器IP/phpmyadmin

  3. TablePlus

    • 轻量级多数据库支持,界面简洁。
    • 下载:官网提供Linux版.deb/.rpm包。

安全性与最佳实践

  1. 最小权限原则

    • 为应用创建独立数据库用户,仅授予必要权限(避免使用root)。
  2. 加密连接

    • 使用SSL/TLS加密数据传输(如MySQL的--ssl-mode=REQUIRED)。
  3. 避免明文密码

    • 命令行:用mysql_config_editor保存加密凭证。
    • 代码:通过环境变量或密钥管理服务(如Vault)存储密码。
  4. 防火墙配置

    • 限制数据库端口(如3306、5432)仅允许可信IP访问:
      sudo ufw allow from 192.168.1.0/24 to any port 3306
  5. 定期更新

    保持数据库客户端和库的版本最新,修复已知漏洞。


在Linux中访问数据库的三种核心方式:

  • 命令行:高效管理,适合运维。
  • 编程语言:灵活集成,适合开发。
  • GUI工具:直观操作,适合数据分析。

无论选择哪种方式,始终遵循安全规范,定期备份数据,并参考官方文档进行配置。


引用说明

  • MySQL官方文档:https://dev.mysql.com/doc/
  • PostgreSQL官方文档:https://www.postgresql.org/docs/
  • Python DB-API标准:https://peps.python.org/pep-0249/
  • OWASP数据库安全指南:https://owasp.org/www-project-top-ten/

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

(0)
酷番叔酷番叔
上一篇 2025年7月24日 18:49
下一篇 2025年7月24日 18:57

相关推荐

  • 如何避免临时目录名称冲突?

    在Linux系统中,文件类型由系统内核根据文件元数据自动判定,无法直接通过命令将普通文件()修改为目录(d),但可通过创建新目录并迁移数据的方案实现类似效果,具体操作如下:核心原理Linux文件类型由元数据中的mode字段决定(通过ls -l首字符查看)::普通文件(Regular File)d:目录(Dire……

    2025年7月8日
    3100
  • Linux中如何将文件复制到U盘?详细操作步骤有哪些?

    在Linux系统中将文件复制到U盘是一个常见操作,但需要经过设备识别、挂载、数据传输和卸载等步骤,由于Linux的文件系统结构与Windows不同,操作时需注意文件系统兼容性和权限问题,以下将详细介绍操作流程,涵盖命令行和图形界面两种方式,并解答常见问题,操作前提:识别U盘与文件系统准备识别U盘设备插入U盘后……

    2025年8月22日
    1800
  • 如何快速入睡

    密钥登录的核心优势安全性私钥存储在本地,公钥在服务器,破解难度远高于密码,支持禁用密码登录,彻底杜绝密码爆破风险,便捷性 免去每次输入密码的麻烦,适合自动化脚本(如CI/CD),符合安全规范 金融、云计算等场景强制要求密钥登录(如AWS/Aliyun),密钥登录配置步骤步骤1:本地生成密钥对(在客户端操作)ss……

    2025年6月18日
    3900
  • Linux如何快速查询DNS地址?

    查看当前配置的DNS服务器(/etc/resolv.conf文件)这是最直接的方式,系统默认从此文件读取DNS配置:cat /etc/resolv.conf输出示例:nameserver 8.8.8.8 # 主DNS服务器nameserver 192.168.1.1 # 备用DNS服务器⚠️ 注意:若使用Net……

    2025年6月23日
    3500
  • Linux中如何建立文件夹?

    在Linux操作系统中,建立文件夹(也称为“目录”)是日常管理和系统维护的基础操作之一,无论是开发者、系统管理员还是普通用户,掌握创建文件夹的方法都是必备技能,Linux下创建文件夹主要通过命令行工具实现,同时也支持图形界面的操作方式,本文将详细介绍命令行中的核心命令mkdir、常用参数及场景应用,并简要说明图……

    2025年8月29日
    1400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信