Ubuntu24.04.4安装mysql8.0.46

### 准备

Ubuntu 每个发行版源内软件版本是锁定固定的:

Ubuntu 22.04:mysql-server = MySQL 8.0

Ubuntu 24.04:mysql-server = MySQL 8.0

查看将要安装的版本:

apt show mysql-server

###安装

sudo apt update && sudo apt upgrade -y

sudo apt install mysql-server -y

安装完成后 MySQL 会自动开机自启,并默认运行。

查看服务状态:sudo systemctl status mysql

启停命令:

sudo systemctl start mysql

sudo systemctl stop mysql

sudo systemctl restart mysql

安全初始化(必做,加固数据库):

sudo mysql_secure_installation

分步交互说明:

1.VALIDATE PASSWORD COMPONENT 密码强度校验,选 n 不开启(自用推荐),y 开启严格密码规则

2.设置 root 密码,重复输入两次

3.Remove anonymous users? → y 删除匿名账号

4.Disallow root login remotely? → y 禁止 root 远程登录

5.Remove test database and access to it? → y 删除测试库

6.Reload privilege tables now? → y 刷新权限

###修改密码

本地登录 MySQL-Ubuntu MySQL8 默认使用 auth_socket 插件认证,不用密码直接 sudo 登录:sudo mysql

修改 root 登录方式(支持密码登录):

1.进入 mysql 命令行

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的强密码';

FLUSH PRIVILEGES;

exit;

2.现在可用密码登录:mysql -u root -p

###配置远程访问(允许外部工具连接)

  1. 修改配置文件允许监听所有 IP

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

找到 bind-address = 127.0.0.1,修改为:

bind-address = 0.0.0.0

mysql8.0新增

mysqlx-bind-address = 0.0.0.0

  1. 创建远程访问账号(不要直接开放 root 远程)

登录 mysql:mysql -u root -p

执行 SQL(newuser用户名,123456密码,%代表任意 IP):

CREATE USER 'newuser'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

授予全部权限

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';

FLUSH PRIVILEGES;

exit;

  1. 放行防火墙 3306 端口

开启ufw防火墙(没开可跳过)

sudo ufw allow 3306/tcp

sudo ufw reload

  1. 重启 MySQL 生效

sudo systemctl restart mysql

###卸载 MySQL8

sudo apt remove mysql-server mysql-client -y

sudo apt autoremove -y

彻底删除配置+数据(谨慎,会清空所有数据库)

sudo rm -rf /etc/mysql /var/lib/mysql

###常用基础操作

  1. 创建数据库

CREATE DATABASE db01 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

utf8mb4 完整支持 emoji,推荐默认字符集,不区分大小写、重音

  1. 查看 mysql 版本

mysql -V

或进入mysql执行

SELECT VERSION();

  1. 重置 root 密码(忘记密码时)

停止 mysql

sudo systemctl stop mysql

跳过权限启动

sudo mysqld_safe --skip-grant-tables &

新开终端登录,重置密码

mysql -u root

FLUSH PRIVILEGES;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

exit;

结束后台进程,重启服务

sudo pkill mysqld

sudo systemctl start mysql

相关推荐
文人sec6 天前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
2501_916008897 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_9160088910 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
鸽芷咕12 天前
MySQL Server 鸿蒙 PC 适配全记录:以混合工具链完成 C++23 交叉编译与 HNP 交付
adb·harmonyos·c++23
游戏开发爱好者815 天前
网络连接排查指南,谁在电脑后台偷跑流量,哪些程序在联网
网络协议·计算机网络·网络安全·ios·adb·https·udp
实心儿儿15 天前
MySQL 的安装
数据库·mysql·adb
2601_9623004715 天前
基于Python与Tkinter的ADB Monkey自动化测试脚本开发
python·adb·tkinter·android测试·gui自动化
flower_drop17 天前
基于 WebUSB 与 CDP:在浏览器端实现 Android 设备通信与无证书抓包实践
android·chrome·测试工具·adb·bug·edge浏览器
蜡台17 天前
# 已解决|MySQL 8\.4\.11 密码正确仍报错1045 \(28000\) Access denied 终极修复方案
android·mysql·adb
leoZ23117 天前
2026-09-08-mysql-57-init-walkthrough
前端·javascript·数据库·vue.js·opencv·mysql·adb