mac 安装mysql

1. 安装

通过 Homebrew 安装:

bash 复制代码
brew install mysql

安装产物:

版本 9.6.0
安装目录 /opt/homebrew/opt/mysql/
可执行文件 /opt/homebrew/opt/mysql/bin/mysqldmysqlmysqld_safemysqladmin
数据目录 /opt/homebrew/var/mysql/
监听端口 3306
Socket /tmp/mysql.sock
主机名 G62N6HRVGW

2. 启动

注意:本机上 brew services start mysql 在当前 macOS 版本上 launchd 未真正拉起 mysqld 进程(实测 brew services info mysql 显示 Running: false)。因此采用直接后台启动方式。

启动命令:

bash 复制代码
nohup /opt/homebrew/opt/mysql/bin/mysqld_safe --datadir=/opt/homebrew/var/mysql > /tmp/mysql_start.log 2>&1 &

验证启动成功:

bash 复制代码
mysql -u root -e "SELECT @@version, @@port;"

实际输出:

复制代码
@@version  @@port
9.6.0      3306

该方式不会随系统重启自动拉起。重启电脑后需手动再次执行启动命令。

3. 关闭

使用 mysqladmin shutdown 优雅关闭(已实测,exit code = 0):

bash 复制代码
mysqladmin -u root shutdown

执行后 ps aux | grep mysqld | grep -v grep 无输出,确认进程已退出。

4. 账号密码

账号 密码 主机 用途
root 空(未设置) localhost 超级管理员,本次安装未设置密码
demo_user Demo@1234 localhost 演示用户,对 demo_db 拥有全部权限

root 当前为无密码状态。如需加固,可执行 mysql_secure_installation(本次未执行,避免改动 root 凭据)。

demo_user 的创建与授权已实际执行:

sql 复制代码
CREATE USER 'demo_user'@'localhost' IDENTIFIED BY 'Demo@1234';
GRANT ALL PRIVILEGES ON demo_db.* TO 'demo_user'@'localhost';
FLUSH PRIVILEGES;

授权信息验证输出:

复制代码
GRANT USAGE ON *.* TO `demo_user`@`localhost`
GRANT ALL PRIVILEGES ON `demo_db`.* TO `demo_user`@`localhost`

5. 使用示例

以下命令本次均已实际执行并通过。

5.1 连接

bash 复制代码
# root 无密码登录
mysql -u root

# 普通用户带密码登录
mysql -u demo_user -pDemo@1234

5.2 建库建表

sql 复制代码
CREATE DATABASE demo_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

USE demo_db;

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

5.3 增删改查

sql 复制代码
-- 插入
INSERT INTO users (name, email)
VALUES ('alice','alice@example.com'),('bob','bob@example.com');

-- 查询
SELECT * FROM users;

-- 更新
UPDATE users SET email='alice2@example.com' WHERE name='alice';

-- 删除
DELETE FROM users WHERE name='bob';

-- 计数
SELECT COUNT(*) FROM users;

实际运行输出示例:

复制代码
id  name   email               created_at
1   alice  alice@example.com   2026-05-30 16:15:47
2   bob    bob@example.com     2026-05-30 16:15:47

更新与删除后:

复制代码
id  name   email                created_at
1   alice  alice2@example.com   2026-05-30 16:15:47

cnt
1

5.4 查看数据库与用户

sql 复制代码
SHOW DATABASES;
SELECT User, Host FROM mysql.user WHERE User='demo_user';
SHOW GRANTS FOR 'demo_user'@'localhost';

SHOW DATABASES; 实测输出:

复制代码
demo_db
information_schema
mysql
performance_schema
sys

5.5 退出

sql 复制代码
EXIT;

6. 常用日志与文件位置

文件 路径
错误日志 /opt/homebrew/var/mysql/G62N6HRVGW.err
PID 文件 /opt/homebrew/var/mysql/G62N6HRVGW.pid
启动日志 /tmp/mysql_start.log(本文档使用的启动方式)

7. 快速参考

动作 命令
启动 nohup /opt/homebrew/opt/mysql/bin/mysqld_safe --datadir=/opt/homebrew/var/mysql > /tmp/mysql_start.log 2>&1 &
关闭 mysqladmin -u root shutdown
连接 mysql -u root
查看进程 `ps aux
相关推荐
PHP实战开发录4 小时前
PHP事务异常后为什么数据还写进去了
mysql·php·开发
呆萌很9 小时前
MySQL 8.4 LTS 完整安装教程
数据库·mysql
Thomas214311 小时前
mysql 索引面试复习
数据库·mysql·面试
小袁拒绝摆烂13 小时前
一条 SQL 从 30 秒到 300 毫秒:聊聊 MySQL 的 Hash Join
sql·mysql·哈希算法
敲代码的嘎仔14 小时前
自己设计了一个兑换码算法:自增ID + Base32转码 + 按位加权签名 + 异或混淆,面试被追问细节时终于不用慌了
java·数据库·mysql·算法·微服务·面试·职场和发展
—Miss. Z—15 小时前
计算机三级数据库技术—应用题2️⃣
数据库·mysql
这个DBA有点耶15 小时前
临时表从4.7秒到0.12秒:不是所有Using temporary都需要优化
数据库·mysql·代码规范
钱栈up17 小时前
Mac端一键部署服务端项目:从流程梳理到踩坑适配的完整实践
macos
天衍四九-17 小时前
MySQL有哪些索引
数据库·mysql
kyrie_sakura19 小时前
MySQL学习笔记4 -- select的7大子句,子查询
笔记·学习·mysql