Linux作为一款开源的操作系统,凭借其稳定性和灵活性,在服务器领域得到了广泛应用,在Linux环境下连接数据库是开发和管理中常见的操作,不同类型的数据库(如MySQL、PostgreSQL、MongoDB等)有不同的连接方式,但总体流程相似,本文将详细介绍Linux下连接数据库的常用方法、工具及注意事项,帮助读者快速掌握这一技能。

准备工作
在连接数据库之前,需要确保以下几点:
- 数据库服务已启动:通过
systemctl status mysql(MySQL)或systemctl status postgresql(PostgreSQL)检查服务状态,若未启动则使用systemctl start命令启动。 - 安装客户端工具:如MySQL的
mysql-client、PostgreSQL的postgresql-client,可通过包管理器安装(如sudo apt install mysql-client)。 - 获取连接信息:包括数据库地址(IP/域名)、端口、用户名、密码及数据库名称。
命令行连接数据库
连接MySQL/MariaDB
使用mysql命令,基本语法为:
mysql -h 主机名 -P 端口号 -u 用户名 -p密码 数据库名
mysql -h 127.0.0.1 -P 3306 -u root -p mydb
输入密码后即可进入数据库交互界面,若省略-p密码,命令会安全提示输入密码。
连接PostgreSQL
使用psql命令,语法为:
psql -h 主机名 -p 端口号 -U 用户名 -d 数据库名 -W
psql -h localhost -p 5432 -U postgres -d mydb -W
-W选项强制提示输入密码。

连接NoSQL数据库(以MongoDB为例)
使用mongo或mongosh(新版工具),语法为:
mongo --host 主机名 --port 端口号 -u 用户名 -p 密码 --authenticationDatabase 数据库名
mongosh --host 127.0.0.1 --port 27017 -u admin -p password --authenticationDatabase admin
编程语言连接数据库
在Linux下,可通过编程语言(如Python、Java)的数据库驱动连接数据库,以Python为例:
连接MySQL
安装mysql-connector-python:
pip install mysql-connector-python
代码示例:
import mysql.connector
conn = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="mydb"
)
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
print(result)
conn.close()
连接PostgreSQL
安装psycopg2:

pip install psycopg2-binary
代码示例:
import psycopg2
conn = psycopg2.connect(
host="localhost",
user="postgres",
password="password",
database="mydb"
)
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
print(result)
conn.close()
图形化工具连接
对于不习惯命令行的用户,可使用图形化数据库管理工具:
- DBeaver:支持多数据库(MySQL、PostgreSQL、MongoDB等),跨平台且免费。
- MySQL Workbench:MySQL官方提供的可视化工具。
- pgAdmin:PostgreSQL的图形化管理工具。
安装后,通过配置连接参数(主机、端口、用户名、密码)即可连接。
常见问题与注意事项
- 连接被拒绝:检查数据库服务是否监听正确端口(如MySQL默认3306),防火墙是否放行端口(
sudo ufw allow 3306)。 - 认证失败:确认用户名、密码正确,且用户有远程访问权限(MySQL需执行
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%')。 - 字符集问题:连接时指定字符集(如
mysql --default-character-set=utf8),避免乱码。
FAQs
Q1: Linux下如何查看数据库的默认端口?
A1: 不同数据库默认端口不同:MySQL为3306,PostgreSQL为5432,MongoDB为27017,可通过配置文件(如MySQL的my.cnf、PostgreSQL的postgresql.conf)查看或修改端口。
Q2: 如何在Linux中远程连接云服务器上的数据库?
A2: 需确保云服务器安全组开放对应端口,并在数据库中授权远程用户(如MySQL的CREATE USER 'user'@'%' IDENTIFIED BY 'password'),然后使用-h参数指定云服务器的公网IP连接。