先说背景 Ubuntu 的 APT 源里自带 MySQL,装起来比 CentOS 省心不少。不过默认版本可能不是最新的,想指定版本或者用官方最新版也有办法。
方法一:APT 直接装(最省事) bash
复制 1 sudo apt update
2 sudo apt install mysql-server sudo apt update
sudo apt install mysql-server展开全部 装完启动:
bash
复制 1 sudo systemctl start mysql
2 sudo systemctl enable mysql sudo systemctl start mysql
sudo systemctl enable mysql展开全部 然后跑一下安全配置脚本:
bash
复制 1 sudo mysql_secure_installation sudo mysql_secure_installation展开全部 这个脚本会一步步引导你改 root 密码、删匿名用户、禁止 root 远程登录、删测试数据库。别跳过。
方法二:装特定版本 APT 里其实各个版本都有独立的包名:
bash
复制 1 sudo apt install mysql-server-8.0 # 装 8.0
2 sudo apt install mysql-server-5.7 # 装 5.7(如果源里还有的话) sudo apt install mysql-server-8.0 # 装 8.0
sudo apt install mysql-server-5.7 # 装 5.7(如果源里还有的话)展开全部 方法三:用官方 APT 仓库(想用最新版) 如果 APT 里的版本太老,可以用 Oracle 官方的仓库:
bash
复制 1 wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
2 sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
3 sudo apt update
4 sudo apt install mysql-server wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
sudo apt update
sudo apt install mysql-server展开全部 安装过程中会让你选版本,选好之后装的就是官方最新版了。
基本操作 检查状态 bash
复制 1 sudo systemctl status mysql sudo systemctl status mysql展开全部 连 MySQL bash
复制 sudo mysql -u root -p展开全部 创建用户和数据库 sql
复制 1 CREATE USER 'username' @ 'localhost' IDENTIFIED BY 'password' ;
2 CREATE DATABASE dbname ;
3 GRANT ALL PRIVILEGES ON dbname . * TO 'username' @ 'localhost' ;
4 FLUSH PRIVILEGES ; CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE dbname;
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
FLUSH PRIVILEGES;展开全部 配置文件位置 文件 路径 主配置 /etc/mysql/mysql.conf.d/mysqld.cnf数据目录 /var/lib/mysql日志 /var/log/mysql
常见问题 忘了 root 密码 bash
复制 1 sudo systemctl stop mysql
2 sudo mysqld_safe --skip-grant-tables & sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &展开全部 然后进 MySQL 重设密码:
sql
复制 1 USE mysql ;
2 UPDATE user SET authentication_string = PASSWORD ( 'new_password' ) WHERE User = 'root' ;
3 FLUSH PRIVILEGES ;
4 EXIT ; USE mysql;
UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;展开全部 重启服务:
bash
复制 1 sudo systemctl restart mysql sudo systemctl restart mysql展开全部 开启远程连接 默认 MySQL 只绑 127.0.0.1,外网连不了。改配置:
bash
复制 1 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf展开全部 找到 bind-address 那行改成:
text
复制 bind-address = 0.0.0.0展开全部 然后授权 root 远程登录(不推荐,见下方安全建议):
sql
复制 1 CREATE USER 'root' @ '%' IDENTIFIED BY 'MySql2025@' ;
2 GRANT ALL PRIVILEGES ON * . * TO 'root' @ '%' WITH GRANT OPTION ;
3 FLUSH PRIVILEGES ; CREATE USER 'root'@'%' IDENTIFIED BY 'MySql2025@';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;展开全部 重启 MySQL,防火墙放行 3306:
bash
复制 1 sudo systemctl restart mysql
2 sudo ufw allow 3306 sudo systemctl restart mysql
sudo ufw allow 3306展开全部 从远程测试连接 bash
复制 1 mysql -h 你的服务器IP -u root -p mysql -h 你的服务器IP -u root -p展开全部 安全建议 别直接用 root 远程登录 ,正经做法是:
sql
复制 1 CREATE USER 'admin' @ '%' IDENTIFIED BY '强密码' ;
2 GRANT ALL PRIVILEGES ON * . * TO 'admin' @ '%' WITH GRANT OPTION ; CREATE USER 'admin'@'%' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;展开全部 sql
复制 1 CREATE USER 'admin' @ '192.168.1.%' IDENTIFIED BY '密码' ; CREATE USER 'admin'@'192.168.1.%' IDENTIFIED BY '密码';展开全部 bash
复制 1 ssh -L 3306:localhost:3306 用户名@服务器IP ssh -L 3306:localhost:3306 用户名@服务器IP展开全部 总结 图省事 → apt install mysql-server,一行搞定要指定版本 → mysql-server-8.0 这样装要最新版 → 加官方仓库再装Ubuntu 比 CentOS 省心很多,自带的 APT 源就有 MySQL,不用折腾第三方仓库。生产环境记得跑 mysql_secure_installation,远程连接别用 root。