ubuntu 升级mysql由mysql5.7.42 升级到8.4.0

ubuntu 升级 mysql5.7.42 到 8.4.0

1.备份数据库数据

2.卸载mysql5.7.42

2.1停止 MySQL 服务

systemctl stop mysql

2.2卸载所有 MySQL 5.7 包

apt remove --purge mysql-server mysql-client mysql-common mysql-community-server mysql-community-client mysql-community-common

2.3清理残留文件和目录

sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql /var/log/mysql* /etc/init.d/mysql

sudo rm -rf /usr/lib/mysql /usr/share/mysql /usr/bin/mysql /usr/sbin/mysqld

sudo rm -rf /etc/systemd/system/mysql.service

sudo rm -rf /var/run/mysqld

apt autoremove -y

apt autoclean -y

2.4确认系统里没有残留

dpkg -l | grep mysql

3.安装mysql8.4.0

3.1 下载 Oracle 官方仓库包

wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb

3.2.配置 MySQL APT 仓库(你已有 .deb 文件)

dpkg -i /home/mysql-apt-config_0.8.36-1_all.deb

选择 mysql-8.4-lts

保留其他默认选项

3.3.然后更新软件包信息

sudo apt update

3.4.安装 MySQL 8.4

sudo apt install -y mysql-server

3.5.修改mysql配置文件忽略大小写

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

添加配置

mysqld

lower_case_table_names=1

character-set-server=utf8mb4

collation-server=utf8mb4_0900_ai_ci

必须在初始化数据目录前设置,否则大小写配置无法生效。 ctrl + o 保存 回车enter ctrl+x 退出

3.6.初始化数据库目录(通常安装包会自动执行,如果需要手动)

sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql

3.7.启动 MySQL 并设置开机自启动

sudo systemctl start mysql

sudo systemctl status mysql

sudo systemctl enable mysql

3.8.查看临时密码

sudo grep 'temporary password' /var/log/mysql/error.log

3.9 修改为新密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '******';

FLUSH PRIVILEGES;

4.0 验证配置是否成功

SHOW VARIABLES LIKE 'lower_case_table_names'; value的值应该是1 表示忽略大小写

4.1 创建远程访问用户 以及对应数据库 并赋权

CREATE USER 'lfarb'@'%' IDENTIFIED BY '密码';

CREATE DATABASE lfarb CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

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

4.2 验证安装成功

mysql --version

4.3.导入数据备份

相关推荐
身如柳絮随风扬8 小时前
MySQL核心知识
数据库·mysql
551只玄猫8 小时前
【数据库原理 实验报告1】创建和管理数据库
数据库·sql·学习·mysql·课程设计·实验报告·数据库原理
q5431470879 小时前
MySQL SQL100道基础练习题
数据库·mysql
zhoupenghui1689 小时前
mysql 中如果条件where中有or,则要求or两边的字段都必须有索引,否则不能用到索引, 为什么?
数据库·mysql·索引
eggwyw10 小时前
完美解决phpstudy安装后mysql无法启动
数据库·mysql
java修仙传11 小时前
MySQL 事务隔离级别详解
数据库·mysql·oracle
Irissgwe11 小时前
MySQL存储过程和触发器专题
数据库·mysql·oracle
skiy13 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
HelloTonyGo13 小时前
个人游戏笔记本免费“养龙虾”(Win10+WSL2+OpenClaw 部署与配置指南)
windows·ubuntu·wsl2·openclaw
创世宇图13 小时前
Alibaba Cloud Linux 安装生产环境-mysql
linux·mysql