卸载
首先,检查一下系统安装的软件包有哪些,使用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.0
、mysql-client-8.0
和mysql-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。
如果官网网址发生变动,可以按照以下步骤进行查找:
- 浏览器输入官网网址
https://www.mysql.com/
- 选择首页downloads选项卡
- 点击
MySQL Community (GPL) Downloads »
- 选择
MySQL APT Repository
- 点击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
键可以退回上一个界面。
按方向键下键,选择第二个选项,第二个选项是用来安装连接器的:
adb.png" alt="在这里插入图片描述" />
这里就直接是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语句,没有什么意义:
这样就完成了。下面是一些其他设置,可能你现在不需要,以后需要的时候再回来看如何设置即可。
一些配置
字符集
一、找到并编辑配置文件
- MySQL的配置文件通常位于
/etc/mysql/
目录下,文件名可能是my.cnf
或mysql.conf.d/mysqld.cnf
。你可以使用如下命令来找到并编辑这个文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
或者使用其他文本编辑器,如vim
:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 在编辑器中,找到
[mysqld]
部分。如果文件中没有该部分,请手动添加。
二、添加或修改字符集设置
- 在
[mysqld]
部分中,添加或修改以下行来设置默认字符集和校对规则:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
这里,character-set-server=utf8mb4
设置了MySQL服务器的默认字符集为utf8mb4
,collation-server=utf8mb4_unicode_ci
设置了默认的校对规则。
- 如果你还希望客户端在连接时也使用
utf8mb4
字符集,可以在配置文件中添加以下部分:
[client]
default-character-set=utf8mb4
三、保存并重启MySQL服务
- 保存对配置文件的修改。在
nano
编辑器中,你可以按Ctrl+O
保存文件,然后按Ctrl+X
退出编辑器。在vim
编辑器中,你可以按Esc
键,然后输入:wq
保存并退出。 - 重启MySQL服务以使修改生效。使用以下命令重启MySQL服务:
sudo systemctl restart mysql
四、验证修改
- 重新登录MySQL数据库。使用以下命令登录:
mysql -u root -p
输入root用户的密码后,登录到MySQL控制台。
- 在MySQL控制台中,执行以下命令来查看当前的字符集设置:
SHOW VARIABLES LIKE 'character_set%';
这将显示所有与字符集相关的变量,包括character_set_database
(数据库字符集)、character_set_server
(服务器字符集)等。确认character_set_server
和character_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和最佳实践,以避免潜在的安全问题和兼容性问题。
今天的分享就到这里了,如果,你感觉这篇博客对你有帮助的话,就点个赞吧!感谢感谢……