云服务器安装MySQL

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

相关推荐
('-')44 分钟前
《从根上理解MySQL是怎样运行的》第二十三章笔记
数据库·笔记·mysql
Mr.徐大人ゞ44 分钟前
13.MHA 常用问题
mysql
卿雪1 小时前
MySQL【数据类型】:CHAR 和 VARCHAR 的对比、VATCHAR(n) 和 INT(n) 里的 n 一样吗?
android·java·数据库·python·mysql·adb·golang
范小多1 小时前
mysql实战 C# 访问mysql(连载三)
数据库·mysql·oracle·c#
gaize12131 小时前
服务器的性能如何评估
运维·服务器·php
星环处相逢1 小时前
MySQL 备份与还原:理论与实战全解析
数据库·mysql
牛奶咖啡131 小时前
制作无人值守自动化系统镜像并实现自动化安装——万能系统引导U盘版本
运维·制作万能系统引导u盘·实现对整个系统的安装备份·制作自动化无人值守系统镜像·使用自动化无人值守系统镜像部署·使用再生龙实现系统的自动化安装
一起养小猫1 小时前
MySQL数据库基础:从三层结构到常用操作
数据库·mysql
ShiLiu_mtx1 小时前
Keepalived,Haproxy负载均衡集群
linux·运维·负载均衡