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

相关推荐
for_ever_love__3 小时前
MySQL 8.0 数据类型选型指南:INT、DECIMAL、VARCHAR 与时间字段怎么选
mysql·adb·数据类型·varchar·长度·字段类型选择
yeflx1 天前
Ubuntu22.04安装Mysql Workbench
数据库·mysql·adb
夜雪一千1 天前
MySQL 自增 ID 的底层原理与坑点
android·mysql·adb
Dxy12393102162 天前
MySQL JSON 生成列索引原理、实战与坑点
mysql·adb·json
远方 hi2 天前
MySQL 管理
adb
夜雪一千3 天前
MySQL 删除 JSON 类型的数据实战
mysql·adb·json
千码君20164 天前
个人开发者:安卓手机adb调试
android·adb·智能手机
夜雪一千5 天前
MySQL 如何存储经纬度坐标:选型、建表、空间查询实战
android·mysql·adb
有毒的教程5 天前
Dev-C++ 使用扩展库两种方式:DevPak一键安装 / 手动配置(重点)
android·c++·adb