杰瑞科技汇

Python安装MySQL模块报错怎么办?

  1. 安装 MySQL 驱动程序:让 Python 能够“听懂”并“说” MySQL 的语言。
  2. 安装 MySQL 服务器:提供一个可以连接的数据库(如果你还没有的话)。

第一步:安装 MySQL 驱动程序 (Connector/Python)

这是最关键的一步,Python 本身不包含连接 MySQL 的功能,我们需要通过第三方库来实现,官方推荐的驱动是 mysql-connector-python

Python安装MySQL模块报错怎么办?-图1
(图片来源网络,侵删)

使用 pip 安装 (推荐)

pip 是 Python 的包管理器,这是最简单、最常用的方法。

  1. 打开终端或命令行工具

    • Windows: 打开命令提示符 (CMD) 或 PowerShell。
    • macOS / Linux: 打开终端 (Terminal)。
  2. 执行安装命令: 在终端中输入以下命令并回车:

    pip install mysql-connector-python
  3. 验证安装: 安装完成后,你可以通过以下命令来检查是否安装成功:

    Python安装MySQL模块报错怎么办?-图2
    (图片来源网络,侵删)
    pip show mysql-connector-python

    如果能看到版本号等信息,说明安装成功。


第二步:安装 MySQL 服务器 (可选,但通常需要)

你的 Python 代码需要连接到一个正在运行的 MySQL 数据库,如果你还没有安装 MySQL 服务器,你需要先安装它。

对于 Windows 用户

  1. 下载安装包: 访问 MySQL 官方下载页面:MySQL Community Downloads 下载 "MySQL Installer for Windows"。

  2. 运行安装程序: 运行你下载的 .msi 文件,安装程序会引导你完成整个过程。

    Python安装MySQL模块报错怎么办?-图3
    (图片来源网络,侵删)
    • 推荐选择 "Full" 安装,它会包含 MySQL 服务器、MySQL Workbench (一个图形化管理工具) 等所有组件,对新手最友好。
    • 在设置 root 用户密码时,请务必记住这个密码,后面连接数据库时会用到。

对于 macOS 用户

  1. 使用 Homebrew (推荐): 如果你已经安装了 Homebrew,这是最简单的方法。

    brew install mysql

    安装后,你可以通过以下命令启动 MySQL 服务:

    brew services start mysql
  2. 使用官方 DMG 包: 也可以像 Windows 用户一样,从官网下载 DMG 文件进行安装。

对于 Linux 用户 (以 Ubuntu/Debian 为例)

  1. 更新包列表

    sudo apt update
  2. 安装 MySQL 服务器

    sudo apt install mysql-server
  3. 安全配置: 安装完成后,运行安全配置脚本,它会帮你设置 root 密码、移除匿名用户等。

    sudo mysql_secure_installation

    根据提示操作即可。


第三步:编写 Python 代码进行连接和操作

驱动和服务器都有了,我们可以在 Python 中连接数据库并进行一些基本操作。

创建一个数据库和用户

为了安全起见,我们最好不直接使用 root 用户,我们可以用 MySQL 的命令行工具(或者 MySQL Workbench 图形界面)来创建一个新用户和数据库。

  1. root 用户身份登录 MySQL:

    mysql -u root -p

    然后输入你之前设置的 root 密码。

  2. 在 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 连接已关闭。

常见问题与解决方案

  1. 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
  2. mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python_user'@'localhost' (using password: YES)

    • 原因:用户名或密码错误。
    • 解决方案:仔细检查 Python 代码中的 userpassword 是否与你在 MySQL 中创建的完全一致(注意大小写和空格)。
  3. 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 mysql
Linux: sudo apt install mysql-server
创建用户/数据库 在 MySQL 中创建用于连接的用户和数据库 CREATE DATABASE ...;
CREATE USER ...;
GRANT ...;
编写代码 使用 mysql.connector 库在 Python 中连接和操作 import mysql.connector
connection = mysql.connector.connect(...)
运行测试 执行你的 Python 脚本,验证一切正常 python your_script.py

遵循以上步骤,你就可以成功地在 Python 环境中安装并使用 MySQL 了。

分享:
扫描分享到社交APP
上一篇
下一篇