文章目录
- 👉MySQL的安装和卸载👈
- 卸载不要的环境
- 查看服务是否正在运行
- 将安装包上传到Linux系统
- yum源
- 安装 MySQL 服务
- 启动MySQL服务
- 登录MySQL
- 修改配置文件
- 设置开机启动
👉MySQL的安装和卸载👈
说明:
- 在安装和卸载中,用户全部切换成 root 用户。安装成功后,普通用户也能使用。
- 初期练习,不进⾏ MySQL ⽤⼾管理,全部使⽤ root 进⾏,尽快适 MySQL 语句,后⾯学了⽤⼾管理,在考虑新建普通⽤⼾。
卸载不要的环境
注:如果 MySQL 的版本比 Linux 系统的版本高且接近,可以不卸载。以下是查看 Linux 系统和 MySQL 版本的指令。
mysql -version #查看MySQL版本
cat /etc/redhat-release #查看Linux的版本
卸载之前,我们需要看 MySQL 服务是否正在运行。如果是,则需要先将 MySQL 服务先停止,再进行卸载。
查看服务是否正在运行
ps ajx | grep mysqld #查看MySQL服务是否正在运行
ps ajx | grep mariadb
#mariadb是MySQL的一个开源分支,如果存在也需要卸载
注:如果没有找到这两个服务,则直接跳转到
开始 / 停止 / 重启服务
systemctl start #开启服务
systemctl stop #停止服务
systemctl restart #重启服务
检查系统安装包
rpm -qa | grep mysql # 查找MySQL安装包
注:如果没有查到 MySQL 的安装包,可以直接跳转到
卸载安装包
这些安装包是通过 yum 来安装的,那么也要通过 yum 来卸载。
# xargs的作用是将前面进程的执行结果
# 作为参数喂给yum进程
rpm -qa | grep mysql | xargs yum -y remove #卸载MySQL安装包
注:执行卸载语句后,可以通过是否看到 Complete 字眼或再次执行查找安装包语句来检查是否完成卸载。
获取官方yum源
ls /etc/yum.repos.d/ -l #查看自己的yum源
MySQL 官方 yum 源链接:点击此链接即可完成跳转
跳转完成后,右击鼠标并点击查看页面源代码以查看更详细的信息!
进行 yum 源获取前,需要查看 Linux 系统的版本,以下载合适的 MySQL。
cat /etc/redhat-release #查看Linux版本
查询
Linux 版本后,找到和系统版本相近或高于系统版本的 MySQL 的 yum 源。
注:Centos 7的 MySQL yum 源安装包在 142 到 147 行,可以选择适合自己系统的版本。el7 为 Centos 7 的简写,MySQL157 表示的是 5.7 版本的 MySQL,这个版本的 MySQL 是比较稳定的。
因为本人 Linux 系统是 7.6 版本的,所以就下载了 147 行的 MySQL yum 源安装包,点击最中间的链接即可下载。
将安装包上传到Linux系统
下载完成后,先将安装包剪切到桌面上,方便我们找到。然后通过在 Linux 终端上输入 rz 指令,选中安装包即可将其上传到 Linux 系统中。
yum源
ls /etc/yum.repos.d/ -l #查看yum源
rpm -ivh 安装包 #对安装包进行解包解压
vim /etc/yum.repos.d/mysql-community.repo #查看MySQL的yum源
yum list | grep mysql #验证是否能根据yum源找到MySQL
安装 MySQL 服务
安装 MySQL 服务成功后,执行上图的三个命令是有相应的显示的,目前我还没有安装 MySQL 服务。
yum install -y mysql-community-server #安装MySQL服务
出现 Complete 字眼就是完成安装了。秘钥过期的解决方案如下图:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
秘钥更新后,再输入 yum 安装指令即可完成安装。
注:mysql 是 MySQL 的客户端、mysqld 是 MySQL 的服务端,my.cnf 是配置文件,MySQL 服务是网络服务。
启动MySQL服务
systemctl start mysqld #启动MySQL服务
MySQL 的服务端是一个网络服务器,它是采用 TCP 协议的,处于应用层,其默认端口号是 3306。
登录MySQL
登录方法一:获取临时 root 密码
注意:这个 root 密码和 Linux 的 root 密码不是同一个概念,这两者的关系就像老婆和老婆饼的关系。
grep 'temporary password' /var/log/mysqld.log
查到临时 root 密码后,就可以使用该密码来登录了。
mysql -uroot -p #登录MySQL
如果没有查到 root 临时密码,可以采用下面的方法。
登录方法二:修改配置文件
vim /etc/my.cnf #打开MySQL文件
打开文件后,在末尾加上下面的语句即可实现免密码登录 MySQL。
skip-grant-tables
修改配置文件后,需要重启 MySQL 服务,然后就可以免密码登录了。
systemctl restart mysqld #重启MySQL服务
mysql -uroot -p #登录MySQL
现在我们没有设置 MySQL 的登录命名,也不会有什么安全问题,因为别人也登录不了你的 MySQL。MySQL 默认情况下是不允许远程登录的,这是因为在安全性方面的考虑。如果允许任何人从外部网络连接到MySQL 服务器,可能会面临一些安全威胁,如恶意攻击、数据泄露等问题。
为了允许远程登录,需要在 MySQL 服务器上进行一些配置。具体来说,需要在 MySQL 配置文件中(一般是my.cnf或者my.ini)添加一个绑定地址(bind-address)选项,将其设置为服务器的公共 IP 地址。同时还需要为远程用户创建 MySQL 用户账号,并授权给该用户相应的权限。
然而,开启远程登录可能会降低 MySQL 服务器的安全性,因此在允许远程登录之前应该评估风险并采取相应的安全措施,如限制可访问的IP地址、采用安全连接等。
修改配置文件
打开 MySQL 的配置文件,添加下面的两条语句,然后重启 MySQL 服务。
character-set-server=utf8
default-storage-engine=innodb
character-set-server=utf8:该语句指定了 MySQL 服务器默认的字符集编码为UTF-8。UTF-8 是一种能够表示全世界范围内的所有字符的编码方式,包括了 Unicode 字符集中的所有字符。在 MySQL 服务器上设置 UTF-8 字符集可以保证数据的正确存储和检索,同时也支持跨平台和跨语言的数据交换。
default-storage-engine=innodb:该语句指定了 MySQL 默认的存储引擎为 InnoDB。存储引擎是 MySQL中 负责数据存储和管理的组件,不同的存储引擎有不同的特点和性能。InnoDB 是一种 ACID 兼容的存储引擎,它支持事务、行级锁定和崩溃恢复等特性,适用于高并发和数据完整性要求较高的应用场景。因此,将 MySQL 默认的存储引擎设置为 InnoDB 可以提高 MySQL 的稳定性和数据完整性。
MySQL 配置文件中,datadir 和 socket 是两个重要的参数设置,具体含义如下:
-
datadir:该参数指定了 MySQL 服务器的数据文件存储路径。MySQL 服务器需要将所有的数据文件(包括表结构、数据等)存储在磁盘上,datadir 参数告诉 MySQL 服务器数据文件所在的具体路径。在 MySQL 配置文件中,datadir 的默认值为 /var/lib/mysql。
-
socket:该参数指定了 MySQL 服务器监听客户端连接的本地套接字文件。套接字(socket)是一种特殊的文件类型,用于实现进程之间的通信,MySQL 服务器监听这个本地套接字文件上的连接请求。在 MySQL 配置文件中,socket 的默认值为 /var/lib/mysql/mysql.sock。
datadir 和 socket 是 MySQL 服务器的两个核心参数,对MySQL 服务器的稳定性和性能影响非常重要。datadir 指定了 MySQL 服务器的数据存储位置,影响着 MySQL 的读写速度和数据完整性;socket 参数则影响 MySQL 服务器与客户端之间的通信速度和性能。一般情况下,这两个参数的默认值能够满足大多数应用需求,如果需要修改,必须谨慎评估并做好相应的备份和恢复措施。
注:修改配置文件时,不要删除原来的配置,可以将其注释掉。
设置开机启动
systemctl enable mysqld
systemctl daemon-reload
注:开机启动可以不进行设置!