Ubuntu 20.04 卸载和安装 MySQL8.0

卸载

首先,检查一下系统安装的软件包有哪些,使用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和最佳实践,以避免潜在的安全问题和兼容性问题。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RCNN系列是如何逐步改善的

1、R-CNN的缺点: 1)计算效率低下:RCNN需要为每一个候选框都提取特征,会导致大量重复的工作,因为候选框是原始图片的一部分,肯定是存在交集的。2)需要大量的磁盘空间:在训练阶段&…

数据结构day5:单向循环链表 代码作业

一、loopLink.h #ifndef __LOOPLINK_H__ #define __LOOPLINK_H__#include <stdio.h> #include <stdlib.h>typedef int DataType;typedef struct node {union{int len;DataType data;};struct node* next; }loopLink, *loopLinkPtr;//创建 loopLinkPtr create();//…

后摩尔定律时代,什么将推动计算机性能优化的发展?

在摩尔定律时代&#xff0c;每两年芯片上的晶体管数量就会翻一番&#xff0c;这一看似不可避免的趋势被称为摩尔定律&#xff0c;它极大地促进了计算机性能的提高。然而&#xff0c;硅基晶体管不可能一直小下去&#xff0c;半导体晶体管的微型化推动了计算机性能的提升&#xf…

LEAST-TO-MOST PROMPTING ENABLES COMPLEX REASONING IN LARGE LANGUAGE MODELS---正文

题目 最少到最多的提示使大型语言模型能够进行复杂的推理 论文地址&#xff1a;https://arxiv.org/abs/2205.10625 摘要 思路链提示在各种自然语言推理任务中表现出色。然而&#xff0c;它在需要解决比提示中显示的示例更难的问题的任务上表现不佳。为了克服这种由易到难的概括…

0101多级nginx代理websocket配置-nginx-web服务器

1. 前言 项目一些信息需要通过站内信主动推动给用户&#xff0c;使用websocket。web服务器选用nginx&#xff0c;但是域名是以前通过阿里云申请的&#xff0c;解析ip也是阿里云的服务器&#xff0c;甲方不希望更换域名。新的系统需要部署在内网服务器&#xff0c;简单拓扑图如…

Mysql8版本的下载安装配置,无痛使用!!!!

mysql8.x版本和msyql5.x版本zip安装的方式大同小异&#xff0c;但是在mysql8.0版本不用手动创建data数据目录&#xff0c;初始化的时候会自动安装的。而且mysql8.0版本性能官方表示比mysql 5.7的快两倍&#xff01; 可以查看文章看5.7版本的安装 MySql5.7安装、配置最新版_my…

《商业模式2.0图鉴》读书笔记(如何构建创新驱动的商业模式:打破定律与重塑价值)

文章目录 引言一、构建创新商业模式的核心原则二、创新商业模式的构建维度三、商业模式设计的实践工具与方法四、从现状到未来&#xff1a;商业模式的演进路径结论附录标题图 引言 商业模式是企业连接资源与客户的桥梁&#xff0c;是价值创造与捕获的核心框架。随着市场需求和…

【数据结构】数据结构整体大纲

数据结构用来干什么的&#xff1f;很简单&#xff0c;存数据用的。 &#xff08;这篇文章仅介绍数据结构的大纲&#xff0c;详细讲解放在后面的每一个章节中&#xff0c;逐个击破&#xff09; 那为什么不直接使用数组、集合来存储呢 ——> 如果有成千上亿条数据呢&#xff…

Flutter组件————FloatingActionButton

FloatingActionButton 是Flutter中的一个组件&#xff0c;通常用于显示一个圆形的按钮&#xff0c;它悬浮在内容之上&#xff0c;旨在吸引用户的注意力&#xff0c;并代表屏幕上的主要动作。这种按钮是Material Design的一部分&#xff0c;通常放置在页面的右下角&#xff0c;但…

python rabbitmq实现简单/持久/广播/组播/topic/rpc消息异步发送可配置Django

windows首先安装rabbitmq 点击参考安装 1、环境介绍 Python 3.10.16 其他通过pip安装的版本(Django、pika、celery这几个必须要有最好版本一致) amqp 5.3.1 asgiref 3.8.1 async-timeout 5.0.1 billiard 4.2.1 celery 5.4.0 …

【Verilog】期末复习

数字逻辑电路分为哪两类&#xff1f;它们各自的特点是什么&#xff1f; 组合逻辑电路&#xff1a;任意时刻的输出仅仅取决于该时刻的输入&#xff0c;而与电路原来的状态无关 没有记忆功能&#xff0c;只有从输入到输出的通路&#xff0c;没有从输出到输入的回路 时序逻辑电路&…

光伏电站无人机巡检都有哪些功能?

焱图慧云光伏智能巡检系统主要依托于先进的无人机技术、传感器技术、图像处理技术和智能分析技术。 一、无人机自主飞行与航迹控制 全自主飞行&#xff1a;无人机能够按照预设的飞行路线自主飞行&#xff0c;完成指定的巡检任务&#xff0c;无需人工干预&#xff0c;大大提高了…

图书馆管理系统(三)基于jquery、ajax

任务3.4 借书还书页面 任务描述 这部分主要是制作借书还书的界面&#xff0c;这里我分别制作了两个网页分别用来借书和还书。此页面&#xff0c;也是通过获取books.txt内容然后添加到表格中&#xff0c;但是借还的操作没有添加到后端中去&#xff0c;只是一个简单的前端操作。…

如何使用 WebAssembly 扩展后端应用

1. WebAssembly 简介 随着互联网的发展&#xff0c;越来越多的应用借助 Javascript 转到了 Web 端&#xff0c;但人们也发现&#xff0c;随着移动互联网的兴起&#xff0c;需要把大量的应用迁移到手机端&#xff0c;随着手端的应用逻辑越来越复杂&#xff0c;Javascript 的解析…

《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介

《鸿蒙HarmonyOS应用开发从入门到精通&#xff08;第2版&#xff09;》已于近日上市&#xff0c;该书由北京大学出版社出版。距离第1版上市已经过去二年半多。本文希望与读者朋友们分享下这本书里面的大致内容。 封面部分 首先是介绍封面部分。 《鸿蒙HarmonyOS应用开发从入门…

Linux -- 线程控制相关的函数

目录 pthread_create -- 创建线程 参数 返回值 代码 -- 不传 args&#xff1a; 编译时带 -lpthread 运行结果 为什么输出混杂&#xff1f; 如何证明两个线程属于同一个进程&#xff1f; 如何证明是两个执行流&#xff1f; 什么是LWP&#xff1f; 代码 -- 传 args&a…

VTK知识学习(26)- 图像基本操作(一)

1、前言 图像处理离不开一些基本的图像数据操作&#xff0c;例如获取和修改图像的基本信息、访问和修改图像像素值、图像显示、图像类型转换等。熟练掌握这些基本操作有助于使用 VTK进行图像处理应用程序的快速开发。 2、图像信息的访问与修改 1&#xff09;利用vtkIamgeData…

【WPF】把DockPanel的内容生成图像

要在WPF中将一个 DockPanel 的内容生成为图像并保存&#xff0c;可以按照与之前类似的步骤进行&#xff0c;但这次我们将专注于 DockPanel 控件而不是整个窗口。 DockPanel的使用 WPF&#xff08;Windows Presentation Foundation&#xff09;中的 DockPanel 是一种布局控件&…

【Linux】处理用户输入

一、基本介绍 1、如何传递参数 向shell脚本传递数据的最基本方法就是通过命令行参数。如下&#xff0c;这条命令会向test.sh脚本传递10和20这两个参数。 ./test.sh 10 20 2、如何读取参数 bash shell会将所有的命令行参数都指派给称作位置参数&#xff08;positional parame…

SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频

要使用阿里云视频点播&#xff08;VOD&#xff09;实现一个教育网站&#xff0c;其中用户需要成为会员后才能查看视频&#xff0c;这个过程包括上传视频、设置权限控制、构建前端播放页面以及确保只有付费会员可以访问视频内容。 1. 视频上传与管理 创建阿里云账号&#xff…