直接用sudo apt install mysql-server -y即可安装Ubuntu 22.04官方源预打包的MySQL 8.0.45,无需换源或手动处理依赖;安装前需确认系统为22.04 LTS、清除旧数据库残留、检查3306端口及源可用性;root默认auth_socket认证,需ALTER USER切换插件才支持密码登录;远程访问须修改bind-address、新建授权用户并开放ufw 3306端口。

直接用 sudo apt install mysql-server -y 就能装好 MySQL 8.0.45,这是 Ubuntu 22.04 官方源预打包的稳定版本,不用换源、不报 libaio1 或 libtinfo.so.5 缺失错误,也不用手动处理依赖。
确认系统干净再动手
装之前别跳步,否则容易撞上残留配置或端口冲突:
- 运行
lsb_release -a,输出里必须含22.04 LTS;不是就别硬套 - 执行
dpkg -l | grep -E 'mysql|mariadb',有输出说明旧版还在,得先sudo apt purge mysql-server mysql-client mysql-common清干净 - 查 3306 端口是否被占:
ss -tlnp | grep 3306,若被占用,先定位进程 - 确认源可用:
apt-cache policy mysql-server应显示一个8.0.x版本,且标有Installed: (none)
root 登录失败?不是 bug,是 auth_socket 认证
Ubuntu 22.04 的 MySQL 8.0 默认让 root@localhost 用 auth_socket 插件认证——这意味着 sudo mysql 能进,但 mysql -u root -p 一定报 Access denied。
面向 CRM 系统的 MySQL 8 数据库模式设计。当用户需要为客户关系管理(CRM)系统设计、评审、优化或生成数据库模式时,应使用此项技能。
- 若需密码登录(比如 Navicat、DBeaver、IDEA 连接),运行:
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_strong_password'; FLUSH PRIVILEGES;" - 千万别直接改
mysql.user表里的plugin字段,容易导致sudo mysql失效且无法回退 -
mysql_native_password兼容性好,但安全性略低于默认的caching_sha2_password;纯本地开发可切,生产环境更推荐新建普通用户并授权
远程访问连不上?两个地方必须改
装完默认只能本地连,远程失败通常卡在这两点:
- MySQL 配置绑定地址:编辑
/etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address = 127.0.0.1,改成bind-address = 0.0.0.0(或指定内网 IP),改完必须sudo systemctl restart mysql - 用户权限没开:MySQL 8.0 不再允许
UPDATE mysql.user SET Host='%' WHERE User='root';正确做法是新建用户并授权:CREATE USER 'appuser'@'192.168.1.%' IDENTIFIED BY 'StrongPass123!';GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'appuser'@'192.168.1.%';FLUSH PRIVILEGES;
最易被忽略的是:改完 bind-address 后忘了重启服务,或者开了端口却没在 ufw 里放行 3306 ——这两处一漏,远程连接就永远卡在超时。










