Ubuntu 上安装与配置 MySQL 的完整步骤
一 安装与启动
- 更新软件源并安装服务器:
- sudo apt update
- sudo apt install mysql-server
- 启动服务并设置开机自启:
- sudo systemctl start mysql
- sudo systemctl enable mysql
- 检查运行状态:
- sudo systemctl status mysql
- 说明:安装完成后通常会自动启动;若未启动,使用 start 命令即可。
二 安全初始化
- 运行安全配置向导,按提示完成加固:
- sudo mysql_secure_installation
- 可配置项包括:
- 为 root 设置强密码
- 移除匿名用户
- 禁止 root 远程登录
- 删除测试数据库并重新加载权限表
- 完成后可用:mysql -u root -p 登录验证。
三 登录与基础配置
- 登录数据库:
- 修改 root 认证方式(如需使用密码登录而非 auth_socket):
- ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的强密码’;
- 如需恢复免密 sudo 登录:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH auth_socket;
- 配置文件与常见参数路径:
- 主配置:/etc/mysql/my.cnf
- 服务器片段:/etc/mysql/mysql.conf.d/mysqld.cnf
- 常用参数:bind-address(监听地址)、port(端口,默认 3306)、datadir(数据目录,默认 /var/lib/mysql)
- 修改配置后重启生效:
- sudo systemctl restart mysql
四 远程访问与防火墙
- 修改 MySQL 监听地址(允许外部访问时):
- 编辑:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- 将 bind-address 改为 0.0.0.0(或指定内网 IP),保存后重启:sudo systemctl restart mysql
- 创建可远程访问的账号并授权:
- CREATE USER ‘remote’@‘%’ IDENTIFIED BY ‘StrongPass!’;
- GRANT ALL PRIVILEGES ON . TO ‘remote’@‘%’ WITH GRANT OPTION;
- FLUSH PRIVILEGES;
- 系统防火墙放行 3306(UFW 示例):
- sudo ufw allow 3306/tcp
- sudo ufw reload
- 建议:生产环境避免使用 root 远程,创建最小权限的专用账号,并限制来源 IP。
五 常用管理与优化
- 创建数据库与用户(示例):
- CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- CREATE USER ‘app’@‘localhost’ IDENTIFIED BY ‘AppPass!’;
- GRANT ALL PRIVILEGES ON appdb.* TO ‘app’@‘localhost’;
- FLUSH PRIVILEGES;
- 性能关键参数(按服务器内存调整,示例为 2GB 内存场景):
- innodb_buffer_pool_size=1G
- max_connections=200
- 备份与恢复(逻辑备份):
- 备份:mysqldump -u root -p --single-transaction --routines --triggers appdb > appdb_$(date +%F).sql
- 恢复:mysql -u root -p appdb < appdb_2025-12-10.sql
- 提示:修改 my.cnf 后需重启;重要变更先在测试环境验证。