MySQL安装实战分享
以下是一份详尽的MySQL安装实战指南,涵盖Windows、Linux、macOS三大平台及Docker部署方案,包含避坑技巧、安全配置和性能优化建议:
一、Windows系统安装(MySQL 8.0.36)
1. 安装包选择
开发环境:选mysql-installer-web-community-8.0.36.msi(在线安装)
生产环境:选mysql-installer-community-8.0.36.msi(离线完整包)
2. 关键配置步骤
powershell
Copy Code
# 安装后配置环境变量(手动添加)
$env:Path += ";C:\Program Files\MySQL\MySQL Server 8.0\bin"
# 初始化数据目录(防中文路径报错)
mysqld --initialize-insecure --user=mysql --console
--basedir="C:\Program Files\MySQL\MySQL Server 8.0"
--datadir="D:\mysql_data"
3. 服务管理命令
bat
Copy Code
:: 注册Windows服务
mysqld --install MySQL8 --defaults-file="C:\my.ini"
:: 启动/停止服务
net start MySQL8
net stop MySQL8
避坑指南:
若出现VCRUNTIME140_1.dll缺失错误,需安装VC++ 2019 Redistributable
端口冲突处理:netstat -ano | findstr :3306 + 任务管理器结束进程
二、Linux系统安装(Ubuntu 22.04)
1. APT源安装
bash
Copy Code
# 添加官方APT源
wget https://dev.mysql.com/get/mysql-apt-config_0.8.28-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.28-1_all.deb # 选择MySQL8.0
# 安装服务端+客户端
sudo apt update
sudo apt install mysql-server mysql-client
# 安全初始化(重点!)
sudo mysql_secure_installation
2. 配置文件优化
ini
Copy Code
# /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
innodb_buffer_pool_size = 1G # 根据内存调整
max_connections = 500
3. 权限问题处理
sql
Copy Code
-- 解决ERROR 1698 (28000): Access denied for user 'root'@'localhost'
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
FLUSH PRIVILEGES;
三、macOS安装(Homebrew方案)
1. 使用brew安装
zsh
Copy Code
# 安装Homebrew版MySQL
brew install mysql
# 配置自启动
brew services start mysql
# 设置root密码
mysqladmin -u root password 'yourpassword'
2. M1芯片特殊处理
zsh
Copy Code
# 解决无法启动问题
sudo chown -R _mysql:mysql /opt/homebrew/var/mysql
sudo chmod -R 755 /opt/homebrew/var/mysql
四、Docker容器化部署
1. 快速启动命令
bash
Copy Code
docker run -d --name mysql8 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=yourStrongPassword \
-v /data/mysql:/var/lib/mysql \
mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
2. 生产环境推荐参数
yaml
Copy Code
# docker-compose.yml
services:
mysql:
image: mysql:8.0
container_name: mysql-prod
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "加密密码建议使用Secret管理"
TZ: "Asia/Shanghai"
volumes:
- mysql_data:/var/lib/mysql
- ./my.cnf:/etc/mysql/conf.d/custom.cnf
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 3
五、安装后必做安全加固
1. 安全基线配置
sql
Copy Code
-- 删除匿名账户
DELETE FROM mysql.user WHERE User='';
-- 禁止root远程登录
CREATE USER 'admin'@'%' IDENTIFIED BY 'ComplexP@ssw0rd!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
-- 移除测试数据库
DROP DATABASE IF EXISTS test;
2. 密码策略强化
sql
Copy Code
-- 设置密码复杂度策略
SET GLOBAL validate_password.policy = STRONG;
SET GLOBAL validate_password.length = 12;
六、性能监控与排错
1. 常用诊断命令
sql
Copy Code
SHOW ENGINE INNODB STATUS; -- 查看锁信息
SHOW PROCESSLIST; -- 当前连接状态
SHOW GLOBAL STATUS LIKE 'Threads_%'; -- 线程使用情况
2. 慢查询日志分析
ini
Copy Code
# 配置文件开启
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
安装验证清单:
连接测试:mysql -u root -p -h 127.0.0.1 -P 3306
版本确认:SELECT @@version;
字符集校验:SHOW VARIABLES LIKE 'character_set%';
升级注意事项:
5.7→8.0需先运行mysql_upgrade程序
检查是否使用已弃用的参数(如query_cache_type)
附:各平台MySQL卸载完整脚本(点击查看)