1、rpm -qa | grep mysql

首先查看以前是否安装mysql

rpm: Red Hat Package Manager,Red Hat 发行版中包管理工具。

  • -qa: 查询所有已经安装的软件包列表。
  • |: 管道符号,用于将一个命令的输出作为下一个命令的输入。
  • grep: 用于在文本文件中查找指定模式的命令。
  • mysql: 要查询的软件包名称中必须包含该关键字。

因此,rpm -qa | grep mysql 的意思是查询系统中所有已经安装的软件包列表,并在其中筛选出包含 mysql 关键字的软件包名称。

Linux-配置mysql以及安装排错_ChatGPT

2、wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

这个命令用于通过 wget 工具下载 MySQL 的软件仓库 RPM 包。具体参数含义如下:

  • wget: Linux/Unix 系统中常用的从网络上下载文件的工具。
  • -i: 指定输入文件。这个参数需要接一个输入文件,然后将文件中的每一行作为一个链接进行下载。
  • -c: 断点续传。如果下载过程中出现网络中断等问题,则重新运行命令会从上次下载失败的位置继续下载,而非重新下载整个文件。
  • http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm: RPM 软件仓库的下载链接。

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 的作用是将输入文件中的 RPM 软件仓库链接下载到当前目录中,并且在下载过程中支持断点续传。


Linux-配置mysql以及安装排错_ChatGPT_02

3、yum -y install mysql57-community-release-el7-10.noarch.rpm

用于使用 YUM 工具安装 MySQL 的软件仓库 RPM 包。具体参数含义如下:

  • yum: 在基于 RPM 包管理的系统中,用于安装、更新、卸载软件包等操作的工具。
  • -y:在执行过程中,遇到需要用户输入确认的地方时,自动选择“yes”。
  • install: 安装软件包的命令。
  • mysql57-community-release-el7-10.noarch.rpm:要安装的 RPM 软件仓库文件名。需要注意的是,这个软件包实际上安装的是 MySQL 软件仓库的配置信息,而非 MySQL 数据库服务器本身。

因此,yum -y install mysql57-community-release-el7-10.noarch.rpm 的作用是使用 YUM 工具安装 MySQL 的软件仓库 RPM 包,并且在安装过程中自动选择“yes”进行确认。

Linux-配置mysql以及安装排错_MySQL_03

4、yum -y install mysql-community-server  

使用 YUM 工具安装 MySQL 数据库服务器。具体参数含义如下:

  • yum: 在基于 RPM 包管理的系统中,用于安装、更新、卸载软件包等操作的工具。
  • -y:在执行过程中,遇到需要用户输入确认的地方时,自动选择“yes”。
  • install: 安装软件包的命令。
  • mysql-community-server:要安装的 MySQL 数据库服务器的软件包名。

因此,yum -y install mysql-community-server 的作用是使用 YUM 工具安装 MySQL 数据库服务器,并且在安装过程中自动选择“yes”进行确认。

Linux-配置mysql以及安装排错_服务器_04

如果遇到报错无法正常安装mysql 

Linux-配置mysql以及安装排错_linux_05

解决方案:个输出的确显示了依赖冲突。前面一部分的命令输出显示 akonadi-mysql 软件包需要 mariadb-server,而当前系统中已经安装了版本为 5.5.56-2.el7 的 mariadb-server 软件包,因此它正在被删除(之后可能会被更新到 5.5.68-1.el7 版本)。但是,安装 akonadi-mysql 软件包需要 mysql-community-server,而当前使用的 MySQL 软件仓库中未找到 5.7.42-1.el7 版本的 mysql-community-server 软件包,因此无法安装 akonadi-mysql 软件包。

  1. 使用以下命令删除 mariadb-server 软件包及其所有依赖项:sudo yum remove mariadb-server

Linux-配置mysql以及安装排错_服务器_06

2、尝试重新按装 sudo yum install mysql-community-server-5.7.42-1.el7.x86_64

可以成功解决

Linux-配置mysql以及安装排错_ChatGPT_07

然后可以遇到密钥报错

报错信息:从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 检索密钥源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。失败的软件包是:mysql-community-libs-5.7.42-1.el7.x86_64GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

解决方法:

这个错误输出显示 RPM 包管理器无法检索到 mysql-community-libs 软件包的 GPG 签名,因此它无法确认该软件包是否安全。这可能是由于以下原因导致的:

1. 你尚未导入 mysql57-community RPM 软件包存储库的 GPG 公钥,因此 RPM 无法验证来自该存储库的任何软件包。要解决这个问题,可以更新系统已安装的 GPG 公钥,或者从 MySQL 官方网站重新获取新的 GPG 密钥并将其添加到系统中。以下是一个示例命令,可以在 CentOS/RHEL 7 系统上添加 mysql57-community RPM 存储库的 GPG 密钥:

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

sudo yun Install 成功解决

Linux-配置mysql以及安装排错_MySQL_08

5、systemctl start mysqld.service  systemctl status mysqld.service  启动mysql服务

Linux-配置mysql以及安装排错_ChatGPT_09

6、grep 'password '  /var/log/mysqld.log

查看mysql日志文件查看服务器初始化密码


/var/log/mysqld.log
 是 MySQL 数据库服务器的日志文件。当 MySQL 服务器运行时,它会记录许多关于服务器运行情况的日志,例如启动信息、错误信息、警告信息和查询日志等

Linux-配置mysql以及安装排错_ChatGPT_10

7、登录mysql出现错误

Linux-配置mysql以及安装排错_ChatGPT_11

解决方案 首先停掉 mysql服务  service  mysqld stop  然后修该mysql 主配置文件 vim /etc/my.cnf

Linux-配置mysql以及安装排错_ChatGPT_12

/etc/my.cnf 是 MySQL 的主配置文件,用于配置 MySQL 数据库服务器的各种参数和选项。这个文件是全局的,适用于整个系统。MySQL 安装时该文件会自动生成,如果不存在,你可以手动创建这个文件并指定相应的配置。

/etc/my.cnf 文件内容通常包括以下几个部分:

  1. [mysqld]:这个段落包含了 MySQL 服务器的各种参数和选项,可以控制 MySQL 服务器的运行方式和性能。
  2. [client]:这个段落包含了 MySQL 客户端的各种参数和选项,在连接 MySQL 服务器时会使用这些参数。例如,可以设置 MySQL 客户端连接到 MySQL 服务器的默认主机名、端口号、字符集等信息。
  3. [mysql]:这个段落包含了 MySQL 命令行工具(mysql)的各种参数和选项。例如,可以设置 MySQL 命令行工具的默认字符集、提高命令行输出的可读性等。
  4. [mysqld_safe]:这个段落包含了 MySQL 服务器启动脚本(mysqld_safe)的各种参数和选项。例如,可以设置该脚本使用的环境变量、它的启动等待时间等。

6.[mysqladmin]:这个段落包含了 MySQL 服务器管理工具(mysqladmin)的各种参数和选项。例如,可以设置 MySQL 服务器管理工具的连接选项、超时时间等。

在[mysqld]下面 添加skip-grant-tables skip-grant-tables 是 MySQL 的一个启动选项,它可以让 MySQL 服务器在不进行授权验证的情况下启动。如果配置了 skip-grant-tables 选项,MySQL 服务器会在启动时跳过执行授权表检查的步骤,从而允许任何用户在不经过身份验证的情况下访问 MySQL 数据库

Linux-配置mysql以及安装排错_云计算_13

8、service start mysqld

启动mysqld服务   mysql -u root -p 登录mysql

Linux-配置mysql以及安装排错_云计算_14

Linux-配置mysql以及安装排错_ChatGPT_15

9、show databases;

Linux-配置mysql以及安装排错_ChatGPT_16

10、 update user set authentication_string=('root ') where user=‘root’ ;

update user这是一个 MySQL 的 UPDATE 查询,用于更新名为 user 的表中的数据。在 MySQL 中,user 表通常用于存储 MySQL 服务器的授权信息。

set authentication_string=password('root')这个子句用于设置名为 authentication_string 的列的值。这个列通常用于存储用户的加密密码。在这里,我们将它的值设置为 password('root'),其中 password() 是 MySQL 提供的一个哈希函数,用于将 "root" 这个字符串转换成一个加密的哈希值来作为密码

由于 password() 函数使用的是 SHA1 算法,所以 "root" 这个密码被转换成了一个 40 位的十六进制字符串,类似于 "5e8ff9bf55ba3508199d22e984129be6e40b9e22"。这个加密过程是不可逆的,也就是说无法从哈希值反推出原始的密码。因此数据库只存储密码的哈希值,而不存储原始密码。

where user='root'这个子句指定了哪些行需要被更新。在这里,我们限制要更新的行的用户名必须为 "root"。因此,这个查询只会更新用户名为 "root" 的用户的密码

总体来说,这个 SQL 命令的作用是将 MySQL 数据库中用户名为 "root" 的用户的加密密码更改为 "root"。当用户登录 MySQL 时,MySQL 会将输入的密码与数据库中的哈希值进行比较,如果一致则允许登录。在修改密码时,最好使用强密码,并遵循最佳实践,例如不要使用与用户名相同的密码、定期更换密码等,以确保安全性。

Linux-配置mysql以及安装排错_ChatGPT_17

然后在修改日志文件 删除skip-grant-tables 重启mysqld 登录

Linux-配置mysql以及安装排错_linux_18

Linux-配置mysql以及安装排错_云计算_19

Linux-配置mysql以及安装排错_云计算_20