Ubuntu系统中如何完整安装与配置MySQL数据库

一 安装与启动
- 更新软件源并安装 MySQL 服务器:
- sudo apt update
- sudo apt install mysql-server
- 启动 MySQL 服务并设置开机自动启动:
- sudo systemctl start mysql
- sudo systemctl enable mysql
- 检查 MySQL 服务运行状态:
- sudo systemctl status mysql
- 说明:在 Ubuntu 中,MySQL 安装完成后一般会自动启动;如果没有正常启动,可手动执行 start 命令进行启动。
二 安全初始化
- 运行 MySQL 安全配置向导,按照提示完成基础安全加固:
- sudo mysql_secure_installation
- 常见可配置项包括:
- 为 root 账户设置高强度密码
- 删除匿名用户
- 禁止 root 账号远程登录
- 移除测试数据库并重新加载权限表
- 完成后可使用:mysql -u root -p 进行登录验证。
三 登录与基础配置
- 登录 MySQL 数据库:
- 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;
- 在系统防火墙中放行 MySQL 默认端口 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 配置后通常需要重启 MySQL;涉及重要参数调整时,建议先在测试环境中验证后再应用到正式环境。
