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.导入数据备份

相关推荐
一只大袋鼠14 小时前
MyBatis 入门详细实战教程(一):从环境搭建到查询运行
java·开发语言·数据库·mysql·mybatis
java资料站14 小时前
MySQL 8.0.45 完整mysqld_safe启动
数据库·mysql
techdashen15 小时前
一个徽章坏了,顺带扯出了 2.3 万个 feature
数据库·mysql
魂梦翩跹如雨15 小时前
数据库的“契约” —— 约束(Constrains)
java·数据库·mysql
Whitemeen太白16 小时前
查询子级分类、父级分类、叶子节点分类(MySQL / Oracle )
数据库·mysql·oracle
一只游鱼18 小时前
langchain4j+mysql+历史记录
mysql·langchain4j
不爱写程序的东方不败18 小时前
MySQL出现慢查询或者主从延迟的问题,怎么做根因分析?
数据库·mysql
努力努力再努力wz19 小时前
【MySQL入门系列】掌握表数据的 CRUD:DML 核心语法与执行逻辑解析
android·开发语言·数据结构·数据库·c++·b树·mysql
chy0000120 小时前
MySQL
mysql
ん贤20 小时前
数据库事务
数据库·mysql·事务