CentOS 中如何设置 Python 数据库连接:以 MySQL 为例

沈亦白
沈亦白
发布时间:2026-08-22 | 71人浏览过
原创

前言

在 CentOS 上配置 Python 连接数据库,真正容易卡住的往往不是代码本身,而是服务状态、账号权限和连接参数没有对齐。本文以 MySQL 为例,把安装、建库建用户、驱动安装、测试脚本和常见排错顺序整理成一套可直接照着执行的流程,方便你快速判断连接问题出在哪一步。

在 CentOS 上让 Python 连上数据库,核心其实只有两件事:先把 MySQL 服务和账号权限准备好,再让 Python 通过正确驱动发起连接。下面按实际操作顺序整理一遍,并把每一步最容易出错的地方一并说明,方便你在本地开发或测试环境里快速判断问题出在哪。

安装并启动 MySQL 服务

第一步先在 CentOS 上安装 MySQL 服务器。原文示例直接使用 yum:

sudo yum install mysql-server

安装完成后,启动服务并设置为开机自启:

sudo systemctl start mysqld
sudo systemctl enable mysqld

这一步的目标很明确:先确认数据库服务已经能在系统里正常运行。后面 Python 无法连接时,最先要回头检查的往往也是这里。

创建数据库与专用用户

服务启动后,使用 root 用户进入 MySQL,创建一个独立的数据库和对应账号。相比直接混用高权限账户,这样的做法权限更清晰,也更适合后续维护。

展示在 CentOS 上完成 MySQL 服务安装、启动与数据库账号创建的步骤关系图
MySQL 服务与账号配置流程先确保 MySQL 服务可用,再创建独立数据库和账号,后续 Python。
mysql -u root -p

进入 MySQL 命令行后,执行以下语句:

CREATE DATABASE mydb;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

其中,mydb、myuser 和 mypassword 都可以按实际需求调整,但后续 Python 连接代码里的配置必须与这里保持一致。

为什么建议单独创建用户

如果只是为了验证连接,很多人会直接用管理员账户测试。但在实际使用里,给应用分配专用数据库和专用用户更稳妥:一方面便于控制权限范围,另一方面排查连接问题时也更容易定位到底是认证失败、库名错误,还是 SQL 权限不足。

安装 Python MySQL 驱动

MySQL 服务准备好之后,Python 还需要一个驱动库才能与数据库通信。原文推荐的是 mysql-connector-python:

pip install mysql-connector-python

这一步完成后,Python 才能通过 import mysql.connector 发起连接。原文也提到,如果你更习惯其他驱动,比如 pymysql,思路是一样的,只是导入方式和连接代码会略有差异。

编写并验证 Python 连接代码

驱动安装完成后,可以直接写一个最小脚本测试数据库连接。下面保留原有示例代码:

展示 Python 连接 MySQL 时配置项、查询动作和关闭连接顺序的结构图
Python 连接脚本的关键结构一个最小可用脚本通常包含连接参数、游标执行查询、读取结果以及关闭资源四部分。
import mysql.connector

# 连接数据库
cnx = mysql.connector.connect(
    host="localhost",
    user="myuser",
    password="mypassword",
    database="mydb"
)

# 创建游标
cursor = cnx.cursor()

# 执行SQL查询
query = "SELECT * FROM your_table_name"
cursor.execute(query)

# 获取查询结果
for row in cursor.fetchall():
    print(row)

# 关闭游标和连接
cursor.close()
cnx.close()

这里有几个关键字段不能写错:

  • host="localhost":表示连接本机 MySQL。
  • user="myuser"、password="mypassword":要与前面创建的账号完全一致。
  • database="mydb":要指向刚刚创建的数据库。
  • your_table_name:需要替换成实际存在的数据表名。

如果脚本能正常执行并返回结果,说明从数据库服务、账号权限到 Python 驱动这一整条链路都已经打通。

为什么用一次简单查询来验证

单纯“连接成功”并不代表配置完整可用。加上一条 SELECT * FROM your_table_name,可以顺手验证三件事:数据库能否登录、目标库是否存在、当前用户是否对目标表具备读取权限。这比只写连接代码更容易暴露真实问题。

运行脚本与常见报错排查

脚本写好后,直接在终端运行:

展示运行 Python 脚本后常见连接失败原因的排查对照图
连接失败时优先检查什么大多数连接失败都集中在配置不一致、服务未启动或目标对象不存在,按顺序排查通常最快。
python your_script.py

如果一切正常,终端会打印出查询到的数据。若运行失败,原文给出的几个排查方向仍然最实用:

  • 用户名、密码是否与创建时一致。
  • 数据库名是否写对。
  • 目标表名是否真实存在。
  • MySQL 服务是否已经启动。

对于本地开发或测试环境,这套流程通常已经够用。至于防火墙配置、SSL 连接等内容,更多是面向远程访问或生产环境时再补充考虑的问题。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表