Ubuntu 20.04 卸载和安装 MySQL8.0

news2024/12/23 18:18:13

卸载

首先,检查一下系统安装的软件包有哪些,使用dpkg -l | grep mysql命令:
在这里插入图片描述
为了将MySQL卸载干净,这些文件都需要被删除。

在Ubuntu20.04系统下,卸载干净MySQL8.0以确保下一次安装不会出错,可以按照以下步骤进行:

一、停止MySQL服务

首先,需要确保MySQL服务已经停止运行。可以使用以下命令来停止MySQL服务:

sudo service mysql stop

二、卸载MySQL软件包

接下来,使用apt-get命令来卸载MySQL相关的软件包。为了彻底卸载,可以使用--purge选项,它会删除软件包及其配置文件。

sudo apt-get autoremove --purge mysql-server-8.0 mysql-client-8.0 mysql-common

注意: 这里的mysql-server-8.0mysql-client-8.0mysql-common是MySQL8.0版本的具体软件包名称。如果你的系统中安装了其他与MySQL相关的软件包(如mysql-server-core-8.0等),也需要一并卸载。刚才第一步,我们使用dpkg -l | grep mysql命令查看到的文件都需要被删除。

这里我使用的命令如下,具体软件包根据你们的情况来定,:

sudo apt-get autoremove --purge mysql-server-8.0 mysql-client-8.0 mysql-common mysql-server-core-8.0 mysql-client-core-8.0 libmysqlclient21

在这里插入图片描述

三、删除MySQL残留文件和目录

卸载软件包后,可能还会有一些残留的文件和目录。这些残留文件可能包括MySQL的配置文件、数据库文件等。

这里先查看一下具体的残留文件和目录(这些文件属于系统文件,查看需要权限,这里使用sudo命令提权):

sudo ls /var/lib/mysql
sudo ls /etc/mysql
sudo ls /var/log/mysql

在这里插入图片描述
能够查到的文件,就删除掉,没有就不需要删。如,我系统中/var/log/mysql目录下,没有文件就不需要删除。

为了彻底清理这些残留文件,可以使用以下命令:

sudo rm -rf /var/lib/mysql  # 删除MySQL数据库文件目录
sudo rm -rf /etc/mysql      # 删除MySQL配置文件目录
sudo rm -rf /var/log/mysql  # 删除MySQL日志文件目录(如果有)

删除后,我们可以再使用命令查看一下,对应的文件是否被删除了:

sudo ls /var/lib/mysql
sudo ls /etc/mysql
sudo ls /var/log/mysql

在这里插入图片描述
找不到文件,就是删除成功了。

四、清理APT缓存和残留的软件包

为了确保系统中没有残留的MySQL软件包或依赖项,可以使用以下命令来清理APT缓存和残留的软件包:

sudo apt-get autoremove  # 自动删除不再需要的依赖包
sudo apt-get autoclean   # 清理APT下载的软件包缓存

五、验证卸载是否彻底

最后,可以使用以下命令来验证MySQL是否已经被彻底卸载:

dpkg --list | grep mysql

如果命令没有返回任何结果,说明MySQL已经被彻底卸载。

在这里插入图片描述

安装

查看操作系统版本

这里我们先使用命令lsb_release -a,查看一下当前系统版本,以便后续的使用:
在这里插入图片描述
如果没有命令lsb_release,可以先安装一下:

首先,更新一下软件包:sudo apt-get update;然后安装软件包即可,sudo apt-get install lsb-release -y

访问下载页面并下载发布包

到MySQL官网下载发布包:官网,点击Download即可,将发布包安装到Windows。

如果官网网址发生变动,可以按照以下步骤进行查找:

  1. 浏览器输入官网网址https://www.mysql.com/
  2. 选择首页downloads选项卡
  3. 点击MySQL Community (GPL) Downloads »
  4. 选择MySQL APT Repository
  5. 点击Download即可

具体画面如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装发布包

首先,要切换到root用户,并进入root用户的home目录:

sudo su  # 切换成root用户
cd ~     # 进行root的home目录
ll       # 列出目录内容

在这里插入图片描述
还需要再下载一个工具lrzsz,用于将刚才下载到Windows电脑中的发布包上传到Ubuntu中。如果你的系统中没有这个工具,可以通过以下步骤进行安装:

可以先更新一下软件包:apt-get update;然后安装软件包即可,apt-get install lrzsz -y。(注意,这里我们已经是root用户,不需要再在命令前加上sudo了)。

这里将发布包从Windows上传到Ubuntu中,可以直接将文件拖拽到Ubuntu页面中,也可以在Ubuntu命令行中,输入rz 命令(注意rz后面有一个空格)。这里我使用第二种方法:
在这里插入图片描述
在这里插入图片描述
接下来才真正安装发布包~

安装发布包

执行安装命令dpkg -i,后面跟着空格和你的发布包名称。(可能我的发布包版本跟你的不同,以你的为准。如果怕名字打错,可以在后面先打出mysql,再按一下Tab键进行补齐即可):

dpkg -i mysql-apt-config_0.8.33-1_all.deb

在这里插入图片描述
第一个选项,是选择要安装的MySQL的版本,可以回车进行选择,回车后的界面为:
在这里插入图片描述
再按一下Esc键可以退回上一个界面。

按方向键下键,选择第二个选项,第二个选项是用来安装连接器的:
在这里插入图片描述
在这里插入图片描述
这里就直接是Enabled即可。

总体界面可能你的与我的不同,但是只要有上面两个选项即可。下面直接选择ok回车即可。

在这里插入图片描述

从MySQL APT 源更新包信息

apt-get update
在这里插入图片描述

安装MySQL

执行命令:apt-get install mysql-server -y

安装过程中,会让你输入初始密码(这个密码是你马上用来登录MySQL时使用的密码):
在这里插入图片描述
后面还有一步,重新输入密码,你直接重新输入即可,这里就不截图了。

重新输入密码后,出现选择默认的身份验证插件(default authentication plugin):
在这里插入图片描述
这里可以使用第一个,选择第一个回车即可:
在这里插入图片描述
安装完成。

查看MySQL状态

安装完成后MySQL服务会自动启动,所以这里直接查看一下:

systemctl status mysql #查看mysql服务状态

在这里插入图片描述
为了后续MySQL操作,这里可以将MySQL服务设置为开机自启动

systemctl enable mysql #设置自启动
systemctl list-unit-files|grep mysql #查看状态

在这里插入图片描述

这样安装就算大功告成了。

之后就不需要root用户了,我们可以再切回普通用户:

su 用户名  # 切换用户
cd ~      # 回到用户家目录

登录MySQL

mysql -uroot -p

在输入刚才你设置的密码即可。

下面执行一些简单的SQL语句,没有什么意义:
在这里插入图片描述

这样就完成了。下面是一些其他设置,可能你现在不需要,以后需要的时候再回来看如何设置即可。

一些配置

字符集

一、找到并编辑配置文件

  1. MySQL的配置文件通常位于/etc/mysql/目录下,文件名可能是my.cnfmysql.conf.d/mysqld.cnf。你可以使用如下命令来找到并编辑这个文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

或者使用其他文本编辑器,如vim

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
  1. 在编辑器中,找到[mysqld]部分。如果文件中没有该部分,请手动添加。

二、添加或修改字符集设置

  1. [mysqld]部分中,添加或修改以下行来设置默认字符集和校对规则:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

这里,character-set-server=utf8mb4设置了MySQL服务器的默认字符集为utf8mb4collation-server=utf8mb4_unicode_ci设置了默认的校对规则。

  1. 如果你还希望客户端在连接时也使用utf8mb4字符集,可以在配置文件中添加以下部分:
[client]
default-character-set=utf8mb4

三、保存并重启MySQL服务

  1. 保存对配置文件的修改。在nano编辑器中,你可以按Ctrl+O保存文件,然后按Ctrl+X退出编辑器。在vim编辑器中,你可以按Esc键,然后输入:wq保存并退出。
  2. 重启MySQL服务以使修改生效。使用以下命令重启MySQL服务:
sudo systemctl restart mysql

四、验证修改

  1. 重新登录MySQL数据库。使用以下命令登录:
mysql -u root -p

输入root用户的密码后,登录到MySQL控制台。

  1. 在MySQL控制台中,执行以下命令来查看当前的字符集设置:
SHOW VARIABLES LIKE 'character_set%';

这将显示所有与字符集相关的变量,包括character_set_database(数据库字符集)、character_set_server(服务器字符集)等。确认character_set_servercharacter_set_database的值已经更新为utf8mb4

通过以上步骤,你已经成功在Ubuntu 20.04系统下通过配置文件设置了MySQL 8.0的字符集为utf8mb4。这将有助于确保你的数据库能够正确处理多语言数据和特殊字符。

安装开发包

在Ubuntu 20.04下安装MySQL 8.0后,如果后续想要使用其他语言(如C或C++)操作MySQL,需要安装MySQL开发库。

1. 确认MySQL开发库是否已安装

首先,你需要确认MySQL的开发库是否已经安装在你的系统上。在Ubuntu上,这通常是通过安装libmysqlclient-dev或类似的包来实现的。

你可以使用以下命令来检查这个包是否已经安装:

dpkg -l | grep libmysqlclient-dev

如果输出中没有显示libmysqlclient-dev包,那么你需要安装它。

2. 安装MySQL开发库

如果MySQL开发库没有安装,你可以使用以下命令来安装它:

sudo apt-get update
sudo apt-get install libmysqlclient-dev

这将安装MySQL的开发库,包括头文件和库文件,到系统的标准位置。

3. 查找头文件

使用命令ls /usr/include/查看有咩有MySQL对应的头文件:
在这里插入图片描述

安装完libmysqlclient-dev后,头文件通常会被放置在/usr/include/mysql目录下(注意,这个路径可能因MySQL版本和Ubuntu版本的不同而有所变化)。你可以使用find命令来查找这些头文件:

sudo find /usr/include -name "*.h" | grep mysql

这将列出所有与MySQL相关的头文件。

4. 查找客户端动态库

在Ubuntu系统上安装完MySQL的开发包(如libmysqlclient-dev)后,对应的动态库文件通常会被放置在系统的标准库目录中。这个目录可能因Ubuntu版本和MySQL版本的不同而有所变化,但常见的路径包括/usr/lib//usr/lib/x86_64-linux-gnu/(对于64位系统)等。
在这里插入图片描述

要查找MySQL的动态库文件,你可以使用find命令或locate命令。以下是使用find命令查找MySQL动态库的一个示例:

sudo find /usr -name "libmysqlclient*"

这个命令会在/usr目录下搜索所有名称以libmysqlclient开头的文件,这通常会包括动态库文件(如.so文件)。

另外,你也可以使用dpkg命令来查看libmysqlclient-dev包安装的文件列表,这可能会给出动态库文件的确切路径:

dpkg -L libmysqlclient-dev | grep ".so"

这个命令会列出libmysqlclient-dev包安装的所有文件,并通过grep命令筛选出以.so结尾的文件(即动态库文件)。
在这里插入图片描述

请注意,由于系统配置和MySQL版本的不同,动态库文件的实际路径可能会有所不同。因此,上述命令给出的路径只是常见的示例,并不保证在所有情况下都适用。如果你无法找到动态库文件,请确保你已经正确安装了MySQL的开发包,并尝试使用不同的搜索路径或命令来查找。

此外,如果你使用的是MySQL的某个特定版本(如从源代码编译的版本),你可能需要查看MySQL的安装文档或配置文件,以确定动态库文件的确切位置。

5. 配置编译器

如果你在使用C或C++编写程序并希望链接MySQL库,你需要在编译时指定头文件的路径和库文件的路径。这通常是通过在编译命令中添加-I-L选项来实现的,以及使用-lmysqlclient来链接MySQL库。

例如,如果你的源文件是my_program.c,你可以使用以下命令来编译它:

gcc -o my_program my_program.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient

注意,这里的/usr/lib/mysql是库文件通常所在的路径,但也可能因系统配置的不同而有所变化。你可以使用find命令或locate命令来查找库文件的确切位置。

注意事项

  • 如果你在安装libmysqlclient-dev时遇到问题,可能是因为你的Ubuntu系统没有启用MySQL的官方APT存储库。在这种情况下,你可以按照MySQL官方文档中的说明来添加和配置这个存储库。
  • 如果你使用的是MySQL的某个特定版本(如从源代码编译的版本),你可能需要下载并安装与该版本相对应的开发库。
  • 在编写和编译与MySQL交互的程序时,请确保你遵循了MySQL的API和最佳实践,以避免潜在的安全问题和兼容性问题。

今天的分享就到这里了,如果,你感觉这篇博客对你有帮助的话,就点个赞吧!感谢感谢……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2264366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NOTEBOOK_11 汽车电子设备分享(工作经验)

汽车电子设备分享 摘要 本文主要列出汽车电子应用的一些实验设备和生产设备,部分会给予一定推荐。目录 摘要一、通用工具:二、测量与测试仪器2.1测量仪器2.2无线通讯测量仪器2.3元器件测试仪2.4安规测试仪2.5电源供应器2.6电磁兼容测试设备2.7可靠性环境…

黑马Java面试教程_P8_并发编程

系列博客目录 文章目录 系列博客目录前言1.线程的基础知识1.1 线程和进程的区别?难2频3面试文稿 1.2 并行和并发有什么区别? 难1频1面试文稿 1.3 创建线程的四种方式 难2频4面试文稿 1.4 runnable 和 callable 有什么区别 难2频3面试文稿 1.5 线程的 run…

【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap

re:Invent 是全球云计算领域的顶级盛会,每年都会吸引来自世界各地的技术领袖、创新者和实践者汇聚一堂,分享最新的技术成果和创新实践,深圳 UG 作为亚马逊云科技技术社区的重要组成部分,将借助 re:Invent 的东风,举办此…

一起学Git【第二节:创建版本库】

创建库 这个库相当于一个目录,目录中的文件都被Git管理,会记录每个文件的修改删除和添加工作,便于之后随时跟踪历史记录还原到之前的某一版本。如何创建库呢?有两种方式,本地创建库和云端克隆一个库。 1.本地创建库 …

本地部署webrtc应用怎么把http协议改成https协议?

环境: WSL2 Ubuntu22.04 webrtc视频聊天应用 问题描述: 本地部署webrtc应用怎么把http协议改成https协议? http协议在安卓手机浏览器上用不了麦克风本,来地应用webrtc 本来是http协议,在安卓手机上浏览器不支持使…

web实操8-cookie

会话技术 会话: 一次会话中包含多次请求和响应。 客户端浏览器访问服务器的资源,只要客户端或者服务器端不关闭,这始终在一次会话范围内,这一次会话范围内可以包含多次请求并且收到多次相应。 一次会话:浏览器第一…

vue2 - Day03 - (生命周期、组件、组件通信)

文章目录 一、生命周期1. 创建阶段2. 挂载阶段3. 更新阶段4. 销毁阶段5. 错误捕获总结 二、组件2.1 注册1. 全局注册 - 公共的组件。2. 局部注册总结 2.2 三大重要的组成部分1. 模板 (Template)主要功能:说明: 2. 脚本 (Script)主要功能:说明…

java日常工作开发高并发问题

前言 本篇文章将是以工作中经常遇到的问题,和面试中经常遇到的java问题进行描写。内容包括微服架构,java并发编程以及相应的中间件的高级知识。本文所有的问题都在描述多线程编程的高级知识。 一. 面试题 1.Sychronized和ReentrantLock有哪些不同点? …

【Python】【数据分析】深入探索 Python 数据可视化:Matplotlib 绘图库完整教程

目录 引言一、什么是 Matplotlib?1.1 Matplotlib 的安装1.2 Matplotlib 的基本功能 二、Matplotlib 的基础绘图2.1 绘制折线图2.2 绘制柱状图2.3 绘制散点图2.4 绘制饼图 三、高级功能与定制3.1 设置图表样式3.2 使用子图3.3 保存图表 四、Matplotlib 流程图4.1 Mer…

【代码随想录|动态规划背包问题】

一、背包问题分类 01背包:n种物品,每种物品只有一个 完全背包:n种物品,每种物品有无限个 多重背包:n种物品,每种物品的个数各不相同 二、01背包问题三道题 卡码网46题.携带研究材料(二维背包…

第1章 命题逻辑

2024年12月22日 一稿 1.1 现代逻辑学的基本研究方法 1.2 命题及其表示法 1.2.1 命题的概念 定义1.1 命题是一个可以判断真假的陈述句。 1.2.2 联结词 非 与 或 蕴含 等价 1.3 命题公式与语句形式化 1.3.1 命题公式的定义 1.3.2 公式的层次 1.3.3 语句形式化 1…

Unity-Editor扩展GUI基本实现一个可拖拉放的格子列表

短短几百行代码,好吧,又是“参考”了国外的月亮 操作,还真地挺自然的。。。。。。国外的实现有点小牛 拖拉,增加+ 一个Element 鼠标左键长按,可以出提示 鼠标右键,清除Element, 有点小bug,不是很自然地完全清除, using System.Collections; using System.Collecti…

解决vscode ssh远程连接服务器一直卡在下载 vscode server问题

目录 方法1:使用科学上网 方法2:手动下载 方法3 在使用vscode使用ssh远程连接服务器时,一直卡在下载"vscode 服务器"阶段,但MobaXterm可以正常连接服务器,大概率是网络问题,解决方法如下: 方…

重拾设计模式--外观模式

文章目录 外观模式(Facade Pattern)概述定义 外观模式UML图作用 外观模式的结构C 代码示例1C代码示例2总结 外观模式(Facade Pattern)概述 定义 外观模式是一种结构型设计模式,它为子系统中的一组接口提供了一个统一…

jvm栈帧结构

JVM(Java虚拟机)中的虚拟机栈是线程私有的,用于支持Java虚拟机进行方法调用和方法执行。而栈帧(Stack Frame)则是虚拟机栈的基本元素,每一个方法从调用开始至执行结束的整个过程,都对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。栈帧的内部结构主要包括以下几个部分:…

2009 ~ 2019 年 408【计算机网络】大题解析

2009 年 路由算法(9’) 讲解视频推荐:【BOK408真题讲解-2009年(催更就退网版)】 某网络拓扑如下图所示,路由器 R1 通过接口 E1 、E2 分别连接局域网 1 、局域网 2 ,通过接口 L0 连接路由器 R2 &…

Flamingo论文介绍:把视觉特征向语言模型看齐

今天介绍一篇经典的多模态论文,来自NeurIPS 2022的《Flamingo: a Visual Language Model for Few-Shot Learning》 ,论文地址:https://arxiv.org/pdf/2103.00020 文章目录 一、Motivate二、Method三、模块细节:Perceiver Resampl…

【VSCode】常用插件汇总

1 Path Autocomplete(路径提示的插件) 步骤一:在vscode的扩展搜索中直接搜索Path Autocomplete,直接安装 步骤二:配置 配置 VS Code settings.json "path-autocomplete.pathMappings": {"": &q…

STM32F103 | Embedded IDE03 - 使用OpenOCD在STM32F103项目时出现下载固件失败

导言 在上一篇备忘录介绍使用OpenOCD的stlink-v2.cfg接口下载固件,在STM32F407的项目上很顺利。但是,在stm32f103上会出现下载失败。 在网上搜了一下,这位博主的文章解决了这个问题: https://www.iotword.com/26738.html 一、修改stm32f1x.c…

易语言 OCR 文字识别

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…