Mac MySQL安装配置

在Mac系统上安装和配置MySQL数据库

MySQL概述

MySQL是世界上最流行的开源关系型数据库管理系统,广泛应用于Web应用程序开发。它具有高性能、可靠性强、易于使用等特点。

高性能

优化的查询引擎,支持高并发访问

可靠性

ACID事务支持,数据安全有保障

可扩展

支持分区、复制、集群等扩展方案

易开发

标准SQL语法,丰富的开发工具

MySQL版本选择

MySQL 5.7

传统版本
  • 稳定可靠
  • 广泛使用
  • 兼容性好
  • 已停止更新

Homebrew安装方式(推荐)

为什么推荐Homebrew?

  • 安装简单,自动处理依赖
  • 版本管理方便
  • 自动配置服务
  • 卸载干净

步骤1:安装MySQL

brew install mysql

安装过程可能需要几分钟,Homebrew会自动下载并配置MySQL。

步骤2:启动MySQL服务

# 启动MySQL服务
brew services start mysql

或者手动启动(临时):

mysqld_safe --datadir=/opt/homebrew/var/mysql

步骤3:安全配置

运行MySQL安全配置脚本:

mysql_secure_installation

配置过程中的选择建议:

设置root密码: Yes

为root用户设置一个强密码

移除匿名用户: Yes

删除匿名用户账户,提高安全性

禁止root远程登录: Yes

只允许本地登录root账户

删除test数据库: Yes

删除默认的测试数据库

重新加载权限表: Yes

使配置立即生效

步骤4:测试连接

mysql -u root -p

输入刚才设置的root密码,成功登录后会看到MySQL提示符:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.35 Homebrew

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

官方安装包方式

如果你不想使用Homebrew,也可以下载MySQL官方安装包。

步骤1:下载MySQL

MySQL官网下载

选择适合Mac的DMG安装包

下载MySQL

选择合适的版本:

  • Apple Silicon Mac (M1/M2): 选择ARM64版本
  • Intel Mac: 选择x86_64版本
  • 版本选择: 推荐MySQL 8.0最新稳定版

步骤2:安装MySQL

  1. 双击下载的DMG文件
  2. 双击MySQL安装包(.pkg文件)
  3. 按照安装向导进行安装
  4. 记住安装过程中显示的临时root密码
  5. 完成安装后,MySQL会自动启动

安装完成后会显示一个临时密码,请务必记录下来!

步骤3:系统偏好设置

安装完成后,可以在"系统偏好设置"中管理MySQL:

  1. 打开"系统偏好设置"
  2. 找到并点击"MySQL"图标
  3. 可以启动/停止MySQL服务
  4. 设置开机自启动

步骤4:配置环境变量

将MySQL命令添加到PATH:

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

初始配置

修改root密码

如果使用官方安装包,需要先修改临时密码:

# 使用临时密码登录
mysql -u root -p

登录后立即修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';

创建开发用户

为了安全起见,建议创建专门的开发用户:

-- 创建开发用户
CREATE USER 'developer'@'localhost' IDENTIFIED BY 'dev_password';

-- 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'developer'@'localhost' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;

在生产环境中,应该根据需要授予最小权限,而不是ALL PRIVILEGES。

创建开发数据库

-- 创建开发数据库
CREATE DATABASE myapp_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建测试数据库
CREATE DATABASE myapp_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 查看数据库列表
SHOW DATABASES;

配置文件位置

Homebrew安装

/opt/homebrew/etc/my.cnf

/usr/local/etc/my.cnf

官方安装包

/etc/my.cnf

/usr/local/mysql/my.cnf

基础配置示例

创建或编辑MySQL配置文件:

[mysqld]
# 基本设置
port = 3306
bind-address = 127.0.0.1
socket = /tmp/mysql.sock

# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# 连接设置
max_connections = 200
max_connect_errors = 10

# 缓存设置
innodb_buffer_pool_size = 256M
query_cache_size = 64M
query_cache_type = 1

# 日志设置
log-error = /opt/homebrew/var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /opt/homebrew/var/log/mysql/slow.log
long_query_time = 2

# 安全设置
local-infile = 0

[mysql]
default-character-set = utf8mb4

[client]
default-character-set = utf8mb4
port = 3306
socket = /tmp/mysql.sock

安全配置

密码策略配置

配置密码复杂度要求:

-- 查看当前密码策略
SHOW VARIABLES LIKE 'validate_password%';

-- 设置密码策略(如果需要)
SET GLOBAL validate_password.policy = MEDIUM;
SET GLOBAL validate_password.length = 8;

网络安全

只绑定本地地址(127.0.0.1)
禁用不必要的功能
定期更新MySQL版本
使用强密码

用户权限管理

-- 查看用户列表
SELECT user, host FROM mysql.user;

-- 查看用户权限
SHOW GRANTS FOR 'username'@'localhost';

-- 撤销权限示例
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';

-- 删除用户
DROP USER 'username'@'localhost';

服务管理

Homebrew服务管理

启动服务

brew services start mysql

停止服务

brew services stop mysql

重启服务

brew services restart mysql

查看状态

brew services list | grep mysql

系统偏好设置管理

  1. 打开"系统偏好设置"
  2. 点击"MySQL"图标
  3. 使用"Start MySQL Server"按钮启动
  4. 使用"Stop MySQL Server"按钮停止
  5. 勾选"Automatically Start MySQL Server on Startup"设置开机自启

手动管理

启动MySQL

sudo mysqld_safe --datadir=/usr/local/mysql/data

停止MySQL

sudo mysqladmin -u root -p shutdown

检查进程

ps aux | grep mysql

安装验证

基本验证

检查MySQL版本

mysql --version

检查服务状态

brew services list | grep mysql

测试连接

mysql -u root -p -e "SELECT VERSION();"

检查端口

lsof -i :3306

功能测试

创建测试表并插入数据:

-- 连接MySQL
mysql -u root -p

-- 创建测试数据库
CREATE DATABASE test_db;
USE test_db;

-- 创建测试表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 插入测试数据
INSERT INTO users (name, email) VALUES 
('张三', 'zhangsan@example.com'),
('李四', 'lisi@example.com');

-- 查询数据
SELECT * FROM users;

-- 删除测试数据库
DROP DATABASE test_db;

性能测试

-- 查看MySQL状态
SHOW STATUS;

-- 查看进程列表
SHOW PROCESSLIST;

-- 查看变量配置
SHOW VARIABLES LIKE '%innodb%';

管理工具

MySQL Workbench

官方图形化管理工具

MySQL Workbench是MySQL官方提供的可视化数据库设计和管理工具。

  • 数据库设计和建模
  • SQL开发和调试
  • 数据库管理
  • 性能监控

安装MySQL Workbench:

brew install --cask mysql-workbench

或者从官网下载:

下载MySQL Workbench

命令行工具

mysql

MySQL命令行客户端

mysql -u username -p -h hostname database_name

mysqldump

数据库备份工具

mysqldump -u root -p database_name > backup.sql

mysqladmin

MySQL管理工具

mysqladmin -u root -p status

第三方工具推荐

Sequel Pro

轻量级的Mac MySQL客户端

brew install --cask sequel-pro

TablePlus

现代化的数据库管理工具

brew install --cask tableplus

phpMyAdmin

基于Web的MySQL管理工具

brew install phpmyadmin

连接配置示例

本地连接

  • 主机: localhost 或 127.0.0.1
  • 端口: 3306
  • 用户名: root 或 developer
  • 密码: 你设置的密码

Socket连接

  • Socket文件: /tmp/mysql.sock
  • 用户名: root
  • 密码: 你设置的密码