MySQL与MySQL Workbench跨平台安装指南及Python连接实战教程
本文将从零开始,详细讲解如何在 Windows/macOS/Linux 系统上安装配置 MySQL 数据库和 MySQL Workbench 可视化工具,并通过 Python 的 PyMySQL
库实现数据交互。
一、MySQL数据库安装(全平台详解)
▶ Windows系统安装
1. 下载MySQL Installer
2. 安装流程
步骤1:双击安装包,选择安装类型:
步骤2:安装依赖组件(如Python、Visual C++ Redistributable)
步骤3:配置MySQL Server
MySQL80
(可自定义)步骤4:应用配置
3. 验证安装
mysql -u root -p
mysql>
提示符,表示连接成功。SHOW DATABASES;
查看默认数据库列表。4. 常见问题处理
错误1:'mysql' 不是内部或外部命令
原因:MySQL未添加到系统环境变量。
解决:
- 右键“此电脑” → 属性 → 高级系统设置 → 环境变量
- 在
Path
中添加MySQL的bin目录(如C:\Program Files\MySQL\MySQL Server 8.0\bin
)
错误2:安装过程中卡在“Applying configuration”
原因:权限不足或端口冲突。
解决:
- 关闭占用3306端口的程序(如Skype、旧版MySQL服务)
- 以管理员身份运行安装程序
▶ macOS系统安装(两种方法)
方法1:使用Homebrew(推荐)
-
安装Homebrew(如未安装):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装完成后,运行
brew update
更新仓库。 -
安装MySQL:
brew install mysql
-
启动服务:
brew services start mysql # 启动并设置开机自启 mysql.server start # 仅本次会话启动
-
初始化安全设置:
mysql_secure_installation
- 根据提示设置Root密码、移除匿名用户、禁止远程Root登录等。
方法2:手动安装(DMG包)
-
下载安装包:
MySQL Community Server下载页面
选择 macOS (x86/ARM) 的DMG包。 -
安装步骤:
- 双击DMG文件,运行安装向导。
- 安装完成后,在“系统偏好设置”中找到 MySQL 图标,启动服务。
-
配置环境变量:
echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
▶ Linux系统安装(Ubuntu/Debian/CentOS)
Ubuntu/Debian
-
更新APT仓库:
sudo apt update sudo apt upgrade
-
安装MySQL Server:
sudo apt install mysql-server
-
安全初始化:
sudo mysql_secure_installation
- 依次设置:密码强度策略、Root密码、移除匿名用户、禁止远程Root登录、删除测试数据库。
-
检查服务状态:
systemctl status mysql # 确认服务已激活(Active: active (running))
CentOS/RedHat
-
添加MySQL Yum仓库:
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
-
安装MySQL Server:
sudo yum install mysql-community-server
-
启动服务:
sudo systemctl start mysqld sudo systemctl enable mysqld
-
获取临时Root密码:
sudo grep 'temporary password' /var/log/mysqld.log
二、MySQL Workbench配置详解
▶ 安装MySQL Workbench
-
Windows/macOS:
- 官网下载地址:MySQL Workbench下载
- Windows选择MSI安装包,macOS选择DMG包。
-
Linux:
sudo apt install mysql-workbench # Ubuntu/Debian sudo dnf install mysql-workbench # Fedora/CentOS
▶ 连接本地数据库
- 启动MySQL Workbench,点击 + 新建连接。
- Connection Name:自定义名称(如
Localhost
) - Parameters:
- Hostname:
127.0.0.1
(默认本地) - Port:
3306
- Username:
root
- Password: 输入安装时设置的Root密码
▶ 高级功能:SSH隧道连接远程服务器
- 在 Connection 配置页切换到 SSH 标签页。
- 填写远程服务器信息:
- SSH Hostname:
远程服务器IP
- SSH Username:
登录用户名
- SSH Password/Key: 选择认证方式
- 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
-
编辑MySQL配置文件:
- Windows:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
- Linux/macOS:
/etc/mysql/my.cnf
或/etc/my.cnf
-
添加配置项:
[mysqld] port=3307 bind-address=0.0.0.0 # 允许所有IP访问(谨慎设置!)
-
重启服务生效:
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'@'%';
▶ 备份与恢复
-
导出数据库(mysqldump):
mysqldump -u root -p test_db > backup.sql
-
导入数据库:
mysql -u root -p test_db < backup.sql
五、常见问题全解
问题场景 | 解决方案 |
---|---|
忘记Root密码 | MySQL官方重置密码指南 |
中文乱码 | 确保连接参数设置 charset='utf8mb4' |
连接数过多 | 修改 max_connections 配置并优化代码 |
PyMySQL执行慢 | 使用索引、批量操作(executemany ) |
作者:WHCIS