今天我们来聊聊后端开发绕不开的话题——MySQL安装配置。别看这玩意儿简单,但新手朋友经常在这上面摔跟头。
今天我就手把手教你,从零开始安装配置MySQL,让你一次成功,从此告别"装个MySQL搞了一天"的尴尬!
为什么选择MySQL?
在开始安装之前,先聊聊为什么MySQL如此受欢迎:
安装前的准备工作
环境检查
首先确认你的服务器环境:
# 查看系统版本
cat /etc/redhat-release # CentOS/RedHat
# 或者
cat /etc/issue # Ubuntu/Debian
# 查看内核版本
uname -r
系统要求
MySQL对系统的要求并不高:
- 操作系统:支持主流Linux发行版、Windows、macOS
Windows系统安装MySQL
下载MySQL安装包
- 访问MySQL官网下载页面:https://dev.mysql.com/downloads/mysql/
- 选择适合Windows的版本,推荐下载MySQL Installer
- 如果网络条件好,选择在线安装包;网络一般选择离线安装包
安装步骤
运行安装程序双击下载的MSI文件,启动MySQL安装向导
选择安装类型
对于大多数开发者,选择"Developer Default"即可
- Developer Default:开发人员默认配置
检查环境要求安装程序会自动检查系统环境,如果缺少依赖会提示安装
执行安装点击"Execute"开始下载并安装相关组件
- Development Machine:开发机配置
- Dedicated Machine:专用服务器配置
- Type and Networking:选择配置类型
- Authentication Method:认证方式
- Accounts and Roles:设置root密码 务必设置一个强密码并牢记
- Windows Service:Windows服务配置 建议勾选"Configure MySQL Server as a Windows Service"
Linux系统安装MySQL
Ubuntu/Debian系统
# 更新包管理器
sudo apt update
# 安装MySQL服务器
sudo apt install mysql-server
# 启动MySQL服务
sudo systemctl start mysql.service
# 设置开机自启
sudo systemctl enable mysql.service
# 检查服务状态
sudo systemctl status mysql.service
CentOS/RHEL系统
# 下载MySQL官方仓库配置包
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
# 安装仓库配置包
sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm
# 安装MySQL服务器
sudo yum install mysql-server
# 启动MySQL服务
sudo systemctl start mysqld
# 设置开机自启
sudo systemctl enable mysqld
# 检查服务状态
sudo systemctl status mysqld
macOS系统安装MySQL
- 下载macOS版本的MySQL安装包(.dmg文件)
MySQL初始化配置
安全配置向导
无论哪个系统,安装完成后都需要进行安全配置:
# 运行安全配置向导
sudo mysql_secure_installation
配置向导会引导你完成以下设置:
登录MySQL
# 使用root用户登录
mysql -u root -p
# 输入密码后进入MySQL命令行
修改root密码
如果是通过包管理器安装,可能需要先查看临时密码:
# Ubuntu/Debian系统查看临时密码
sudo grep 'temporary password' /var/log/mysql/error.log
# CentOS/RHEL系统查看临时密码
sudo grep 'temporary password' /var/log/mysqld.log
登录后修改密码:
-- 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
-- 刷新权限
FLUSH PRIVILEGES;
MySQL基本配置
配置文件位置
不同系统的配置文件位置不同:
- Windows:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini - Linux:
/etc/mysql/mysql.conf.d/mysqld.cnf
常用配置项
[mysqld]
# 基本设置
port=3306
bind-address=0.0.0.0 # 允许远程连接
# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 连接设置
max_connections=200
max_connect_errors=10
# 缓存设置
innodb_buffer_pool_size=1G # 根据内存调整
query_cache_size=64M
tmp_table_size=64M
max_allowed_packet=64M
# 日志设置
log-error=/var/log/mysql/error.log
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=2
# InnoDB设置
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
重启MySQL服务
修改配置后需要重启服务:
# Windows系统
net stop mysql
net start mysql
# Linux/macOS系统
sudo systemctl restart mysql
# 或者
sudo service mysql restart
创建用户和数据库
创建数据库
-- 创建数据库
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 查看数据库
SHOW DATABASES;
创建用户
-- 创建用户
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strong_password';
-- 授予权限
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
远程访问配置
如果需要远程访问MySQL:
-- 创建允许远程访问的用户
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'strong_password';
-- 授权
GRANT ALL PRIVILEGES ON myapp.* TO 'remote_user'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
同时需要修改配置文件中的bind-address为0.0.0.0或注释掉该行。
常见问题排查
1. 无法启动MySQL服务
# 查看错误日志
sudo tail -f /var/log/mysql/error.log
# 检查端口占用
sudo netstat -tlnp | grep :3306
# 检查权限问题
ls -la /var/lib/mysql/
2. 忘记root密码
# 停止MySQL服务
sudo systemctl stop mysql
# 以安全模式启动
sudo mysqld_safe --skip-grant-tables &
# 登录MySQL
mysql -u root
# 修改密码
USE mysql;
UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
# 重启MySQL服务
sudo systemctl restart mysql
3. 连接被拒绝
# 检查MySQL服务状态
sudo systemctl status mysql
# 检查防火墙设置
sudo ufw status # Ubuntu
sudo firewall-cmd --list-all # CentOS
# 检查用户权限
SELECT User, Host FROM mysql.user;
性能优化建议
1. 调整缓冲池大小
# InnoDB缓冲池大小,建议设置为物理内存的50-75%
innodb_buffer_pool_size=2G
2. 优化连接设置
# 最大连接数
max_connections=500
# 连接超时设置
wait_timeout=300
interactive_timeout=300
3. 启用查询缓存
# 查询缓存设置
query_cache_type=1
query_cache_size=128M
query_cache_limit=2M
备份与恢复
备份数据库
# 备份单个数据库
mysqldump -u root -p myapp > myapp_backup.sql
# 备份所有数据库
mysqldump -u root -p --all-databases > all_backup.sql
恢复数据库
# 恢复数据库
mysql -u root -p myapp < myapp_backup.sql
结语
到这里,MySQL的安装配置就全部完成了!从下载安装、初始化配置到性能优化,每一步都详细讲解了。
记住几个关键点:
阅读原文:原文链接
该文章在 2025/12/10 18:43:51 编辑过