Ubantu安装MySQL8.0

目录

更新系统包

[安装 MySQL 8.0](#安装 MySQL 8.0)

初始化安全配置

如果手滑没有设置到root用户密码:

验证安装

配置远程访问


更新系统包

打开终端,执行以下命令更新系统软件包列表并升级现有包:

复制代码
sudo apt update && sudo apt upgrade -y

安装 MySQL 8.0

①Ubuntu 24.04(20.04以上均是) 的默认软件源中已包含 MySQL 8.0,直接通过apt安装即可:

复制代码
sudo apt install mysql-server -y

②安装完成后,MySQL 服务会自动启动,可通过以下命令检查状态:

复制代码
sudo systemctl status mysql

若显示active (running),则表示服务已正常运行。

初始化安全配置

①MySQL 提供了安全配置脚本,用于设置 root 密码、禁用匿名用户、限制 root 远程登录等,执行以下命令:

复制代码
sudo mysql_secure_installation

②根据提示进行配置:

  1. 选择密码验证策略(推荐010为低强度,1为中强度)。
  2. 设置 root 用户密码(需符合所选策略)。
  3. 依次输入Y确认以下选项:
    • 移除匿名用户
    • 禁止 root 远程登录
    • 删除测试数据库
    • 重新加载权限表

#密码策略解释

0(LOW):仅密码长度至少 8 位,无复杂度要求(可以纯数字、纯字母)。

1(MEDIUM,推荐):密码长度至少 8 位,且必须包含 数字、大写字母、小写字母、特殊符号(如!@#$ 等) 中的至少 3 种。

2(STRONG):在 MEDIUM 基础上,还需满足密码不能包含常见词典词(如 password、123456 等),限制更严格。

如果手滑没有设置到root用户密码

如果设置密码时直接回车了,而没有设置到root用户密码:

①登录 MySQL(此时可能无需密码,或使用之前的空密码):

复制代码
sudo mysql -u root -p

②若提示输入密码,直接回车(空密码)尝试登录。

复制代码
#切换到系统数据库

USE mysql; 

③设置 root 密码(替换 '你的新密码' 为实际密码,需符合策略)

复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';

④刷新权限

复制代码
FLUSH PRIVILEGES;

⑤退出

复制代码
exit; 

验证安装

通过以下命令登录 MySQL 控制台,验证安装是否成功:

复制代码
sudo mysql -u root -p

输入步骤 3 中设置的 root 密码,若成功进入mysql>命令行,则表示安装完成。

配置远程访问

若需要远程连接 MySQL(默认仅允许本地访问),需修改配置:

①编辑 MySQL 配置文件:

复制代码
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

②找到bind-address = 127.0.0.1,将其注释(在前面加#)或改为0.0.0.0(允许所有 IP 访问):

复制代码
# bind-address = 127.0.0.1

③​保存并退出;

④登录 MySQL,授权 root 用户远程访问(替换your_password为实际密码):

复制代码
-- 创建允许所有主机访问的 root 用户(密码替换为你要设置的密码)
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
-- 授予所有权限(生产环境建议按需限制权限,比如只给特定数据库权限)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 刷新权限使配置生效
FLUSH PRIVILEGES; 

⑤重启 MySQL 服务使配置生效:

复制代码
sudo systemctl restart mysql

可检查:

User: root:指的是 MySQL 中的用户名是 root(超级管理员用户,拥有最高权限)。

Host: %:% 是 MySQL 中的通配符,表示 "所有主机" 或 "任意 IP 地址"。

意思是:允许用户名 root 从任何远程主机(包括本地服务器、同一局域网的其他电脑、甚至互联网中的设备,只要网络可达)连接到当前 MySQL 服务器。

相关推荐
Yang-Never30 分钟前
ADB ->adb shell perfetto 抓取 trace 指令
android·开发语言·adb·android studio
轩情吖5 小时前
MySQL之事务管理
android·后端·mysql·adb·事务·隔离性·原子性
赶路人儿1 天前
常见的mcp配置
android·adb
ego.iblacat1 天前
MySQL 数据库操作
数据库·mysql·adb
路溪非溪1 天前
adb的安装和基本使用总结
adb
XDHCOM1 天前
MySQL报错LDAP认证初始化连接池失败,远程修复思路和故障排查分享
数据库·mysql·adb
闻哥1 天前
深入理解 MySQL InnoDB Buffer Pool 的 LRU 冷热数据机制
android·java·jvm·spring boot·mysql·adb·面试
炸炸鱼.1 天前
MySQL 数据库核心操作手册
数据库·adb·oracle
总要冲动一次1 天前
MySQL 5.7 全量 + 增量备份方案(本地执行 + 远程存储)
数据库·mysql·adb
mldlds2 天前
mysql9.0windows安装
windows·adb