macOS 安装 Redis 和 MySQL 的常见问题及解决方案
一、Redis 安装与启动
安装前清理(建议先卸载旧版本)
- 查看 Redis 是否已安装:
brew list | grep redis
- 如果已安装,先卸载:
brew uninstall redis
- 可选:清除残留配置文件和数据目录(根据需要):
rm -rf /usr/local/var/db/redis
rm -rf /usr/local/etc/redis.conf
安装步骤
- 安装 Homebrew(若尚未安装):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 使用 Homebrew 安装 Redis:
brew install redis
- 启动 Redis:
# 前台运行
redis-server
# 后台作为服务运行
brew services start redis
- 测试 Redis 是否正常工作:
redis-cli ping
# 返回 PONG 即为成功
- 停止 Redis 服务:
brew services stop redis
二、Spring Boot 集成 Redis 报错排查
问题一:Tomcat 无法启动,提示 Lettuce Timer 线程未关闭
- 现象: 提示线程
lettuce-timer
未关闭,可能造成内存泄漏。 - 原因: Redis 连接未正常释放。
- 解决方案: 在
@PreDestroy
方法中释放连接:
@PreDestroy
public void cleanUp() {
if (redisConnectionFactory instanceof LettuceConnectionFactory) {
((LettuceConnectionFactory) redisConnectionFactory).destroy();
}
}
问题二:redisConnectionFactory 报错,提示 Host must not be empty
- 现象: 无法创建 RedisTemplate,错误指向 host 为空。
- 解决方案:
- 检查
application.yml
或application.properties
中 Redis 配置是否正确:
- 检查
spring:
redis:
host: localhost
port: 6379
- 检查配置是否被多环境文件覆盖。
- 如果是 Java 配置类,确保
LettuceConnectionFactory
正确传入主机和端口。
问题三:Tomcat 启动失败,Bean 初始化失败
- 现象: Bean 注入失败,逐层排查到 RedisTemplate。
- 解决方案:
- Redis 服务是否运行。
spring.redis.host
是否配置正确。- 是否使用了动态配置或环境变量未加载。
三、MySQL 安装与启动问题
安装前清理(建议先卸载旧版本)
- 停止旧服务(如有):
brew services stop mysql@8.0
- 卸载已安装的 MySQL:
brew uninstall --force mysql@8.0
- 删除残留数据目录和配置:
rm -rf /opt/homebrew/var/mysql
rm -rf ~/Library/LaunchAgents/homebrew.mxcl.mysql@8.0.plist
安装 MySQL
- 安装指定版本:
brew install mysql@8.0
- 启动服务:
brew services start mysql@8.0
常见问题
问题一:brew 提示 formula 未安装
- 运行以下命令安装:
brew install mysql@8.0
问题二:Postinstall 未成功
- 执行:
brew postinstall mysql@8.0
问题三:服务无法启动,提示 bootstrap failed
- 原因: 权限问题或数据目录未初始化。
- 解决方案:
sudo chown -R $(whoami):staff /opt/homebrew/var/mysql
brew postinstall mysql@8.0
brew services start mysql@8.0
问题四:登录 MySQL 时不知道密码
- 启动安全模式跳过权限验证:
brew services stop mysql@8.0
/opt/homebrew/opt/mysql@8.0/bin/mysqld_safe --skip-grant-tables --datadir=/opt/homebrew/var/mysql
- 另开终端重设密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
配置 PATH(可选)
echo 'export PATH="/opt/homebrew/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
创建数据库
CREATE DATABASE bombsandsatellite_test;
可选:创建用户并授权:
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON bombsandsatellite_test.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;
此文档适用于常见的 macOS 下 Redis 与 MySQL 安装、配置及与 Spring Boot 集成过程中的报错排查与解决。