- 安装 MySQL 驱动程序:让 Python 能够“听懂”并“说” MySQL 的语言。
- 安装 MySQL 服务器:提供一个可以连接的数据库(如果你还没有的话)。
第一步:安装 MySQL 驱动程序 (Connector/Python)
这是最关键的一步,Python 本身不包含连接 MySQL 的功能,我们需要通过第三方库来实现,官方推荐的驱动是 mysql-connector-python。

使用 pip 安装 (推荐)
pip 是 Python 的包管理器,这是最简单、最常用的方法。
-
打开终端或命令行工具:
- Windows: 打开命令提示符 (CMD) 或 PowerShell。
- macOS / Linux: 打开终端 (Terminal)。
-
执行安装命令: 在终端中输入以下命令并回车:
pip install mysql-connector-python
-
验证安装: 安装完成后,你可以通过以下命令来检查是否安装成功:
(图片来源网络,侵删)pip show mysql-connector-python
如果能看到版本号等信息,说明安装成功。
第二步:安装 MySQL 服务器 (可选,但通常需要)
你的 Python 代码需要连接到一个正在运行的 MySQL 数据库,如果你还没有安装 MySQL 服务器,你需要先安装它。
对于 Windows 用户
-
下载安装包: 访问 MySQL 官方下载页面:MySQL Community Downloads 下载 "MySQL Installer for Windows"。
-
运行安装程序: 运行你下载的
.msi文件,安装程序会引导你完成整个过程。
(图片来源网络,侵删)- 推荐选择 "Full" 安装,它会包含 MySQL 服务器、MySQL Workbench (一个图形化管理工具) 等所有组件,对新手最友好。
- 在设置
root用户密码时,请务必记住这个密码,后面连接数据库时会用到。
对于 macOS 用户
-
使用 Homebrew (推荐): 如果你已经安装了 Homebrew,这是最简单的方法。
brew install mysql
安装后,你可以通过以下命令启动 MySQL 服务:
brew services start mysql
-
使用官方 DMG 包: 也可以像 Windows 用户一样,从官网下载 DMG 文件进行安装。
对于 Linux 用户 (以 Ubuntu/Debian 为例)
-
更新包列表:
sudo apt update
-
安装 MySQL 服务器:
sudo apt install mysql-server
-
安全配置: 安装完成后,运行安全配置脚本,它会帮你设置
root密码、移除匿名用户等。sudo mysql_secure_installation
根据提示操作即可。
第三步:编写 Python 代码进行连接和操作
驱动和服务器都有了,我们可以在 Python 中连接数据库并进行一些基本操作。
创建一个数据库和用户
为了安全起见,我们最好不直接使用 root 用户,我们可以用 MySQL 的命令行工具(或者 MySQL Workbench 图形界面)来创建一个新用户和数据库。
-
以
root用户身份登录 MySQL:mysql -u root -p
然后输入你之前设置的
root密码。 -
在 MySQL 命令行中执行以下 SQL 语句:
-- 创建一个名为 'python_test' 的数据库 CREATE DATABASE python_test; -- 创建一个新用户 'python_user',密码为 'your_strong_password' CREATE USER 'python_user'@'localhost' IDENTIFIED BY 'your_strong_password'; -- 授予 'python_user' 用户对 'python_test' 数据库的所有权限 GRANT ALL PRIVILEGES ON python_test.* TO 'python_user'@'localhost'; -- 刷新权限使更改生效 FLUSH PRIVILEGES; -- 退出 MySQL EXIT;
请务必将
'your_strong_password'替换为你自己的强密码。
编写 Python 连接脚本
创建一个名为 connect_db.py 的文件,并粘贴以下代码:
import mysql.connector
from mysql.connector import Error
def connect_to_mysql():
"""连接到 MySQL 数据库并执行简单操作"""
connection = None # 初始化连接对象为 None
try:
# --- 连接配置 ---
# 请根据你的实际情况修改以下参数
connection = mysql.connector.connect(
host='localhost', # 数据库主机地址,通常是 'localhost'
database='python_test', # 你要连接的数据库名
user='python_user', # 你创建的用户名
password='your_strong_password' # 你为用户设置的密码
)
if connection.is_connected():
db_info = connection.get_server_info()
print(f"成功连接到 MySQL 服务器,版本: {db_info}")
# 创建一个游标对象,用于执行 SQL 语句
cursor = connection.cursor()
# --- 执行 SQL 查询 ---
# 获取数据库版本
cursor.execute("SELECT version();")
version = cursor.fetchone() # 获取第一行结果
print(f"数据库版本: {version[0]}")
# --- 创建表 ---
create_table_query = """
CREATE TABLE IF NOT EXISTS employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
position VARCHAR(100),
salary DECIMAL(10, 2)
)
"""
cursor.execute(create_table_query)
print("表 'employees' 创建成功或已存在。")
# --- 插入数据 ---
insert_query = "INSERT INTO employees (name, position, salary) VALUES (%s, %s, %s)"
employee_data = ('张三', '软件工程师', 8500.00)
cursor.execute(insert_query, employee_data)
connection.commit() # 提交事务,保存数据
print(f"成功插入数据: {employee_data}")
# --- 查询数据 ---
cursor.execute("SELECT id, name, position, salary FROM employees")
records = cursor.fetchall() # 获取所有结果
print("\n当前员工列表:")
for row in records:
print(f"ID: {row[0]}, 姓名: {row[1]}, 职位: {row[2]}, 薪资: {row[3]}")
except Error as e:
print(f"连接或操作 MySQL 时出错: {e}")
finally:
# 确保连接被关闭
if connection is not None and connection.is_connected():
cursor.close()
connection.close()
print("\nMySQL 连接已关闭。")
# 运行函数
if __name__ == "__main__":
connect_to_mysql()
运行脚本
在终端中,使用 python 命令运行你的脚本:
python connect_db.py
如果一切顺利,你应该会看到类似下面的输出:
成功连接到 MySQL 服务器,版本: 8.0.33
数据库版本: 8.0.33
表 'employees' 创建成功或已存在。
成功插入数据: ('张三', '软件工程师', 8500.00)
当前员工列表:
ID: 1, 姓名: 张三, 职位: 软件工程师, 薪资: 8500.00
MySQL 连接已关闭。
常见问题与解决方案
-
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'localhost:3306'- 原因:最常见的原因是 MySQL 服务器没有启动。
- 解决方案:
- Windows: 打开 "服务" (Services),找到 "MySQL" 相关的服务,确保其状态为 "正在运行"。
- macOS (Homebrew): 运行
brew services start mysql。 - Linux (Ubuntu/Debian): 运行
sudo systemctl start mysql。
-
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python_user'@'localhost' (using password: YES)- 原因:用户名或密码错误。
- 解决方案:仔细检查 Python 代码中的
user和password是否与你在 MySQL 中创建的完全一致(注意大小写和空格)。
-
pip install mysql-connector-python失败,提示权限错误或找不到命令- 原因:可能是
pip路径问题或权限不足。 - 解决方案:
- 尝试使用
python -m pip install mysql-connector-python。 - 在 Windows 上,以管理员身份运行 CMD 或 PowerShell。
- 在 macOS/Linux 上,使用
sudo pip install mysql-connector-python(不推荐,但可以解决权限问题)。
- 尝试使用
- 原因:可能是
| 步骤 | 描述 | 关键命令/操作 |
|---|---|---|
| 安装驱动 | 安装 Python 连接 MySQL 的官方库 | pip install mysql-connector-python |
| 安装服务器 | 安装 MySQL 数据库本身 (可选,但通常需要) | Windows: 官方安装包 macOS: brew install mysqlLinux: sudo apt install mysql-server |
| 创建用户/数据库 | 在 MySQL 中创建用于连接的用户和数据库 | CREATE DATABASE ...;CREATE USER ...;GRANT ...; |
| 编写代码 | 使用 mysql.connector 库在 Python 中连接和操作 |
import mysql.connectorconnection = mysql.connector.connect(...) |
| 运行测试 | 执行你的 Python 脚本,验证一切正常 | python your_script.py |
遵循以上步骤,你就可以成功地在 Python 环境中安装并使用 MySQL 了。
