MySQL与MySQL Workbench跨平台安装指南及Python连接实战教程

本文将从零开始,详细讲解如何在 Windows/macOS/Linux 系统上安装配置 MySQL 数据库和 MySQL Workbench 可视化工具,并通过 Python 的 PyMySQL 库实现数据交互。


一、MySQL数据库安装(全平台详解)

▶ Windows系统安装

1. 下载MySQL Installer
  • 官网地址:MySQL Installer下载页面
  • 选择版本
  • 推荐下载 Windows (x86, 32/64-bit), MySQL Installer MSI
  • 若需离线安装,选择体积较大的 Full 版本(约400MB)
  • 注意:若安装旧版本(如MySQL 5.7),需点击页面底部的 Archives 查找历史版本。

  • 2. 安装流程
  • 步骤1:双击安装包,选择安装类型:

  • Developer Default:默认开发环境(含MySQL Server、Workbench等工具)
  • Server only:仅安装数据库服务
  • Custom:自定义组件(推荐高级用户)
  • 步骤2:安装依赖组件(如Python、Visual C++ Redistributable)

  • 若提示缺少依赖,需允许安装程序自动下载。
  • 步骤3:配置MySQL Server

  • Authentication Method
  • 选择 Use Strong Password Encryption for Authentication (RECOMMENDED)
  • 旧版应用需选 Legacy Authentication(兼容模式)
  • Root密码设置:建议使用复杂密码(至少8位,含大小写字母+数字+符号)
  • Windows Service配置
  • 服务名默认为 MySQL80(可自定义)
  • 勾选 Start the MySQL Server at System Startup(开机自启)
  • 步骤4:应用配置

  • 点击 Execute 完成所有配置,等待进度条全部变为绿色。

  • 3. 验证安装
  • 打开命令提示符(CMD)或 PowerShell:
    mysql -u root -p
    
  • 输入密码后,若显示 mysql> 提示符,表示连接成功。
  • 输入 SHOW DATABASES; 查看默认数据库列表。

  • 4. 常见问题处理
  • 错误1'mysql' 不是内部或外部命令
    原因:MySQL未添加到系统环境变量。
    解决

    1. 右键“此电脑” → 属性 → 高级系统设置 → 环境变量
    2. Path 中添加MySQL的bin目录(如 C:\Program Files\MySQL\MySQL Server 8.0\bin
  • 错误2:安装过程中卡在“Applying configuration”
    原因:权限不足或端口冲突。
    解决

    1. 关闭占用3306端口的程序(如Skype、旧版MySQL服务)
    2. 以管理员身份运行安装程序

  • ▶ macOS系统安装(两种方法)

    方法1:使用Homebrew(推荐)
    1. 安装Homebrew(如未安装):

      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
      
    2. 安装完成后,运行 brew update 更新仓库。
    3. 安装MySQL

      brew install mysql
      
    4. 启动服务

      brew services start mysql  # 启动并设置开机自启
      mysql.server start        # 仅本次会话启动
      
    5. 初始化安全设置

      mysql_secure_installation
      
    6. 根据提示设置Root密码、移除匿名用户、禁止远程Root登录等。

    方法2:手动安装(DMG包)
    1. 下载安装包
      MySQL Community Server下载页面
      选择 macOS (x86/ARM) 的DMG包。

    2. 安装步骤

    3. 双击DMG文件,运行安装向导。
    4. 安装完成后,在“系统偏好设置”中找到 MySQL 图标,启动服务。
    5. 配置环境变量

      echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> ~/.zshrc
      source ~/.zshrc
      

    ▶ Linux系统安装(Ubuntu/Debian/CentOS)

    Ubuntu/Debian
    1. 更新APT仓库

      sudo apt update
      sudo apt upgrade
      
    2. 安装MySQL Server

      sudo apt install mysql-server
      
    3. 安全初始化

      sudo mysql_secure_installation
      
    4. 依次设置:密码强度策略、Root密码、移除匿名用户、禁止远程Root登录、删除测试数据库。
    5. 检查服务状态

      systemctl status mysql  # 确认服务已激活(Active: active (running))
      

    CentOS/RedHat
    1. 添加MySQL Yum仓库

      sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
      
    2. 安装MySQL Server

      sudo yum install mysql-community-server
      
    3. 启动服务

      sudo systemctl start mysqld
      sudo systemctl enable mysqld
      
    4. 获取临时Root密码

      sudo grep 'temporary password' /var/log/mysqld.log
      

    二、MySQL Workbench配置详解

    ▶ 安装MySQL Workbench

    1. Windows/macOS

    2. 官网下载地址:MySQL Workbench下载
    3. Windows选择MSI安装包,macOS选择DMG包。
    4. Linux

      sudo apt install mysql-workbench  # Ubuntu/Debian
      sudo dnf install mysql-workbench  # Fedora/CentOS
      

    ▶ 连接本地数据库

    1. 启动MySQL Workbench,点击 + 新建连接。
    2. Connection Name:自定义名称(如 Localhost
    3. Parameters
    4. Hostname: 127.0.0.1(默认本地)
    5. Port: 3306
    6. Username: root
    7. Password: 输入安装时设置的Root密码

    ▶ 高级功能:SSH隧道连接远程服务器

    1. Connection 配置页切换到 SSH 标签页。
    2. 填写远程服务器信息:
    3. SSH Hostname: 远程服务器IP
    4. SSH Username: 登录用户名
    5. SSH Password/Key: 选择认证方式
    6. MySQL配置中填写远程数据库的本地地址(一般为 127.0.0.1:3306)。

    三、Python连接MySQL实战(PyMySQL)

    1. 安装PyMySQL库

    pip install pymysql
    # 若使用虚拟环境,先激活环境再安装
    

    2. 基础操作:创建表与插入数据

    import pymysql
    
    # 连接数据库(替换为实际密码)
    conn = pymysql.connect(
        host='localhost',
        user='root',
        password='SecurePass123!',
        database='test_db',
        charset='utf8mb4',
        cursorclass=pymysql.cursors.DictCursor  # 返回字典格式结果
    )
    
    try:
        with conn.cursor() as cursor:
            # 创建表
            cursor.execute("""
                CREATE TABLE IF NOT EXISTS users (
                    id INT AUTO_INCREMENT PRIMARY KEY,
                    name VARCHAR(255),
                    email VARCHAR(255)
                )
            """)
            
            # 插入数据
            sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
            cursor.execute(sql, ('Alice', 'alice@example.com'))
            cursor.execute(sql, ('Bob', 'bob@example.com'))
        
        conn.commit()  # 提交事务
    
    finally:
        conn.close()  # 关闭连接
    

    3. 查询与事务处理

    # 查询数据
    with conn.cursor() as cursor:
        cursor.execute("SELECT * FROM users WHERE name LIKE %s", ('A%',))
        results = cursor.fetchall()
        for row in results:
            print(f"ID: {row['id']}, Name: {row['name']}")
    
    # 事务回滚示例
    try:
        with conn.cursor() as cursor:
            cursor.execute("UPDATE users SET email='error@example.com' WHERE id=1")
            cursor.execute("UPDATE users SET email=null WHERE id=2")  # 故意引发错误
        conn.commit()
    except Exception as e:
        print("发生错误,回滚事务:", e)
        conn.rollback()
    

    4. 连接池优化(推荐生产环境使用)

    from dbutils.pooled_db import PooledDB
    
    # 创建连接池
    pool = PooledDB(
        creator=pymysql,
        host='localhost',
        user='root',
        password='SecurePass123!',
        database='test_db',
        maxconnections=10,  # 最大连接数
        blocking=True,      # 超出连接数时阻塞等待
    )
    
    # 从连接池获取连接
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute("SELECT VERSION()")
    print(cursor.fetchone())
    conn.close()  # 实际将连接返回池中
    

    四、安全与高级配置

    ▶ 修改默认端口与绑定IP

    1. 编辑MySQL配置文件:

    2. Windows: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
    3. Linux/macOS: /etc/mysql/my.cnf/etc/my.cnf
    4. 添加配置项:

      [mysqld]
      port=3307
      bind-address=0.0.0.0  # 允许所有IP访问(谨慎设置!)
      
    5. 重启服务生效:

      sudo systemctl restart mysql  # Linux
      # Windows: 服务管理器重启MySQL服务
      

    ▶ 用户权限管理

    -- 创建新用户并授权
    CREATE USER 'dev_user'@'%' IDENTIFIED BY 'UserPass123!';
    GRANT SELECT, INSERT, UPDATE ON test_db.* TO 'dev_user'@'%';
    FLUSH PRIVILEGES;
    
    -- 查看用户权限
    SHOW GRANTS FOR 'dev_user'@'%';
    

    ▶ 备份与恢复

    1. 导出数据库(mysqldump):

      mysqldump -u root -p test_db > backup.sql
      
    2. 导入数据库

      mysql -u root -p test_db < backup.sql
      

    五、常见问题全解

    问题场景 解决方案
    忘记Root密码 MySQL官方重置密码指南
    中文乱码 确保连接参数设置 charset='utf8mb4'
    连接数过多 修改 max_connections 配置并优化代码
    PyMySQL执行慢 使用索引、批量操作(executemany

    作者:WHCIS

    物联沃分享整理
    物联沃-IOTWORD物联网 » MySQL与MySQL Workbench跨平台安装指南及Python连接实战教程

    发表回复