先说背景

Ubuntu 的 APT 源里自带 MySQL,装起来比 CentOS 省心不少。不过默认版本可能不是最新的,想指定版本或者用官方最新版也有办法。

方法一:APT 直接装(最省事)

bash
1sudo apt update
2sudo apt install mysql-server

装完启动:

bash
1sudo systemctl start mysql
2sudo systemctl enable mysql

然后跑一下安全配置脚本:

bash
1sudo mysql_secure_installation

这个脚本会一步步引导你改 root 密码、删匿名用户、禁止 root 远程登录、删测试数据库。别跳过。

方法二:装特定版本

APT 里其实各个版本都有独立的包名:

bash
1sudo apt install mysql-server-8.0   # 装 8.0
2sudo apt install mysql-server-5.7   # 装 5.7(如果源里还有的话)

方法三:用官方 APT 仓库(想用最新版)

如果 APT 里的版本太老,可以用 Oracle 官方的仓库:

bash
1wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
2sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
3sudo apt update
4sudo apt install mysql-server

安装过程中会让你选版本,选好之后装的就是官方最新版了。

基本操作

检查状态

bash
1sudo systemctl status mysql

连 MySQL

bash
1sudo mysql -u root -p

创建用户和数据库

sql
1CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
2CREATE DATABASE dbname;
3GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
4FLUSH PRIVILEGES;

配置文件位置

文件 路径
主配置 /etc/mysql/mysql.conf.d/mysqld.cnf
数据目录 /var/lib/mysql
日志 /var/log/mysql

常见问题

忘了 root 密码

bash
1sudo systemctl stop mysql
2sudo mysqld_safe --skip-grant-tables &

然后进 MySQL 重设密码:

sql
1USE mysql;
2UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
3FLUSH PRIVILEGES;
4EXIT;

重启服务:

bash
1sudo systemctl restart mysql

开启远程连接

默认 MySQL 只绑 127.0.0.1,外网连不了。改配置:

bash
1sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address 那行改成:

text
bind-address = 0.0.0.0

然后授权 root 远程登录(不推荐,见下方安全建议):

sql
1CREATE USER 'root'@'%' IDENTIFIED BY 'MySql2025@';
2GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
3FLUSH PRIVILEGES;

重启 MySQL,防火墙放行 3306:

bash
1sudo systemctl restart mysql
2sudo ufw allow 3306

从远程测试连接

bash
1mysql -h 你的服务器IP -u root -p

安全建议

别直接用 root 远程登录,正经做法是:

  • 建个专用管理用户
sql
1CREATE USER 'admin'@'%' IDENTIFIED BY '强密码';
2GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
  • 限制来源 IP
sql
1CREATE USER 'admin'@'192.168.1.%' IDENTIFIED BY '密码';
  • 或者走 SSH 隧道
bash
1ssh -L 3306:localhost:3306 用户名@服务器IP

总结

  • 图省事 → apt install mysql-server,一行搞定
  • 要指定版本 → mysql-server-8.0 这样装
  • 要最新版 → 加官方仓库再装

Ubuntu 比 CentOS 省心很多,自带的 APT 源就有 MySQL,不用折腾第三方仓库。生产环境记得跑 mysql_secure_installation,远程连接别用 root。