7.2.2.5 安装MySQL
安装mysql要确保自己得服务器上mysql得包都删干净了。
在mobaxterm中,在/usr/local/src目录下新建一个MySQL文件夹。
cd /usr/local/src
mkdir MySQL
cd MySQL
下载 MySQL 8.0 的yum源配置包,此时,会把文件下载到MySQL里:
wget https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm
-
wget: 下载工具。
-
https://dev.mysql.com/get/: MySQL 官方的下载路径。
-
mysql80-community-release: 这是核心部分。
-
mysql80 明确指定了是 MySQL 8.0 版本。
-
community-release 表示这是社区版的 "发布 / 源" 配置包。
-
el7-10.noarch.rpm:
-
el7 代表这个包适用于 RHEL 7 (Red Hat Enterprise Linux 7) 及兼容系统,比如你之前提到的 CentOS 7 或 Alibaba Cloud Linux。
-
.rpm 是 Red Hat 系统的软件包格式。
-
如果是mysql57,就把命令中代表版本号的 mysql80 改成了 mysql57。下面步骤仅适用于MySQL80的安装如果是MySQL57,见https://blog.csdn.net/m0_62569064/article/details/138715157?spm=1001.2014.3001.5502。MySQL57安装完后,需要配置一下编码,否则部署项目后向数据库里添加数据时无法正确显示。
安装mysql源配置包sudo yum -y install mysql80-community-release-el7-10.noarch.rpm

导入 GPG 密钥,确保下载的软件是官方正版:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

注:
-
sudo 是 Linux 里的命令,全称 "Super User Do",作用是 让当前普通用户,临时使用管理员(root 用户)的权限去执行某个命令。比如你用普通用户执行 yum install(安装软件)、systemctl start(启动服务)时,这些操作需要修改系统文件、管理系统进程,普通用户没权限,加 sudo 就能临时获取权限,避免报错。
-
但是有些时候也可以不加,这取决于你当前用的 用户身份 和 命令的权限要求。
-
如果你当前登录的是 root 用户(Linux 最高权限用户):所有命令都有最高权限,不需要加 sudo(比如 root 用户直接执行 yum install 也能成功);
-
如果你当前是 普通用户:
-
- 执行不需要改系统的命令(比如 ls 看文件、cd 切目录、wget 下载文件),普通用户有权限,不用加 sudo;
-
执行需要改系统的命令(安装软件、启动服务、修改系统配置),普通用户没权限,必须加 sudo,否则会报错 "Permission denied"(权限不足)。
正式安装 MySQL 服务:sudo yum -y install mysql-community-server
执行这个命令时,yum 会自动从我们刚刚配置好的 MySQL 8.0 源里去查找并安装最新的稳定版。

启动 MySQL 服务:
sudo systemctl start mysqld.service
注:
-
MySQL启动后一般不需要主动停止,除非有特殊需求(比如服务器维护、MySQL 配置修改后需要重启)。
-
如果停止了,项目就会连不上数据库,出现 "数据库连接失败" 的错误。
-
这个启动和 Windows 在服务里启动 MySQL 是一回事
-
Linux 里 MySQL 服务的常用命令
-
重启服务(配置修改后用):sudo systemctl restart mysqld.service
-
查看服务状态(看是否在运行):sudo systemctl status mysqld.service(运行中会显示 "active (running)")
-
设置开机自启(避免服务器重启后 MySQL 没启动):sudo systemctl enable mysqld.service
查看运行状态service mysqld status

查看初始密码
sudo grep 'temporary password' /var/log/mysqld.log
登录
mysql -u root -p
登录后需要修改密码,假设我要把密码修改成简单的密码root,此时必须先执行下面这条命令,把密码改成一个符合 MySQL 要求的复杂密码。
你可以用我这个,也可以自己想一个,但必须包含大小写字母、数字和特殊符号。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TempPass!2024';
这个修改会立即生效,为了进行下一步,你需要退出并重新登录。
exit;
现在,用你刚刚设置的新密码(TempPass!2024)登录 MySQL。
mysql -u root -p
此时如果不行修改简单的密码,到这里就已经可以结束了。如果再改,改的太简单,就会被攻击,数据库里的东西就会消失,然后显示让你支付比特币恢复自己的数据库。下面的步骤不推荐继续执行,除非特殊需要、
降低密码策略:
在 mysql> 提示符后,执行以下命令来降低密码安全要求:
set global validate_password.policy=0;
set global validate_password.length=1;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.special_char_count = 0;
SET GLOBAL validate_password.check_user_name = OFF;
再次退出 MySQL:set global 命令的修改需要重新登录才能生效。
exit;
用复杂密码第三次登录:
再次使用 TempPass!2024 登录 MySQL。
mysql -u root -p
设置密码为 root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
再次登录,验证是否成功
mysql -u root -p # 提示输入密码时,输入 root 然后回车
Mysql远程连接需要Linux的操作系统上开3306端口,如果是云服务器的话还需要去云服务器的控制台开启3306端口。
然后在Linux服务器中进入mysql执行以下命令(注意MySQL 要求在执行操作前必须先重置密码。这是因为初始密码存在安全风险,需要用户设置一个新的、安全的密码后才能进行后续操作),允许mysql远程连接
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
然后打开远程连接工具输入ip和端口号,以及mysql的密码进行连接
连接测试如果失败,显示

这因为 MySQL 8.0 及以上版本默认使用 caching_sha2_password 作为身份验证插件,而你的客户端工具(比如一些旧版本的 Navicat、SQLyog 等)不支持这种新的认证插件,导致无法加载认证插件从而连接失败。
此时,还需要修改MySQL用户的认证插件。
在云服务器上登录 MySQL
mysql -u root -p
输入密码后进入 MySQL 命令行界面。
执行以下 SQL 语句,将 root 用户的认证插件修改为 mysql_native_password,并设置密码(这里假设密码为 root,你可以替换为自己的密码):
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
刷新权限,执行以下 SQL 语句,使权限修改生效:
FLUSH PRIVILEGES;
重新尝试远程连接,使用你的客户端工具(如 Navicat),再次输入云服务器的 IP、端口(默认 3306)、用户名 root 和刚刚设置的密码 root,进行远程连接,应该就可以成功连接了。
注意事项:
- 云服务器上的mysql密码不可设置的太简单,尤其是root,否则,会被人攻击,把自己数据库里的东西删了。
- 两个 "命令行"
- 服务器命令行 (Shell):
- 提示符:[root@iZ2zecrpxkiu7zm08qc5ugZ ~]#
- 作用:管理服务器上的文件、目录、服务(比如启动 / 停止 MySQL)。
- MySQL 命令行 (Client):
- 提示符:mysql>
- 作用:管理数据库、表、数据。
- 按照上面的安装方式(RPM 包操作 + YUM 工具安装,核心依赖的是 YUM 包管理机制),安装目录和前面的不同。查看方式有两种:
1.使用 which 命令(适用于 yum 安装)
在服务器命令行输入:
which mysql
分析结果: - 如果输出是 /usr/bin/mysql,这说明你的 MySQL 是通过 yum 或 rpm 包管理器安装的。
- 它的主要配置文件在 /etc/my.cnf。
- 它的数据文件在 /var/lib/mysql/。
- 它的启动脚本由 systemctl 管理。
2.查看配置文件
MySQL 的配置文件 my.cnf(Linux系统) 或 my.ini(Windows系统) 中记录了所有关键路径。
在服务器命令行输入:
sudo find / -name "my.cnf"
打开找到的文件(通常是 /etc/my.cnf):
sudo cat /etc/my.cnf
在文件里找到 datadir 和 socket 这两行,它们指向的路径就能告诉你 MySQL 的数据文件在哪里。
mysqld\] datadir=/var/lib/mysql \<-- 数据目录在这里 socket=/var/lib/mysql/mysql.sock