您的位置:首页 > 健康 > 养生 > Centos下安装Mysql

Centos下安装Mysql

2024/12/23 21:09:03 来源:https://blog.csdn.net/m0_73800602/article/details/141960688  浏览:    关键词:Centos下安装Mysql

目录

查看是否已经安装

检查系统软件包

卸载软件包

安装

检查是否成功安装

安装mysql服务

查看配置⽂件和数据存储位置

启动服务

设置开机启动[可以不设]

常⻅问题

解决 GPG 密钥过期问题

解决方案:

常⻅问题

解决 GPG 密钥过期问题

配置登录

登录方法一:使用临时密码登录

登录方法二:直接尝试登录

登录方法三:绕过密码登录

总结


查看是否已经安装

ps axj | grep mysql

这个命令是列出所有正在运行的进程(ps axj),然后通过管道 (|) 将输出传递给 grep mysql,这样就只显示包含 mysql 关键字的行。

输出结果:

    1  1707  1706  1706 ?           -1 Sl      27  35:40 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid8707  9603  9602  8707 pts/0     9602 S+    1003   0:00 grep --color=auto mysql

这里列出了两个进程:

  • 第一行表示 MySQL 数据库服务正在运行,其进程 ID (PID) 是 1707。该进程是由 PID 为 1706 的进程启动的,MySQL 服务使用的是 /usr/sbin/mysqld 这个可执行文件,并且指定了 --daemonize 和 --pid-file 参数来以守护进程的方式运行,并将 PID 写入 /var/run/mysqld/mysqld.pid 文件。
  • 第二行表示的是 grep 命令本身的进程信息,它是由 PID 为 9602 的进程启动的,并且是在终端 pts/0 上运行的。

ps ajx | grep mariadb

这个命令也是用来列出所有进程(ps ajx),然后通过 grep mariadb 过滤出与 mariadb 相关的信息。

输出结果:

 8707 11699 11698  8707 pts/0    11698 S+    1003   0:00 grep --color=auto mariadb

这里只有一条记录,实际上就是 grep mariadb 命令自身的进程信息,说明没有找到任何与 mariadb 相关的进程在运行。

如果你的云服务器已经预装了 MySQL 或 MariaDB,并且这些数据库服务已经被正确配置并启动,那么你可以直接使用它们来存储和管理数据,无需再次安装数据库软件。但是,为了确保一切正常工作,你需要确认以下几点:

  1. 服务状态:确保 MySQL 或 MariaDB 服务正在运行。你可以通过 service mysql statussystemctl status mysqld (对于 MySQL)以及 service mariadb statussystemctl status mariadb (对于 MariaDB)来检查服务的状态。

  2. 安全性:新安装或预装的数据库可能需要一些安全配置,例如设置 root 用户密码、删除测试用户等。你可以通过运行 mysql_secure_installation 脚本来增强 MySQL 的安全性。

  3. 配置文件:检查数据库的配置文件(通常是 MySQL 的 /etc/mysql/my.cnf 或 MariaDB 的 /etc/my.cnf),以确保配置适合你的应用需求。

  4. 客户端工具:你需要安装 MySQL 或 MariaDB 的客户端工具,以便能够连接到数据库并执行 SQL 命令。通常情况下,这些工具会随服务器端一起安装,或者可以通过包管理器单独安装。

  5. 防火墙设置:确保服务器的防火墙规则允许必要的端口(默认 MySQL 和 MariaDB 使用 3306 端口)对外界开放,以便其他应用程序或客户端可以访问数据库。

  6. 备份与恢复:规划好数据库的备份策略,确保数据的安全性。

如果你发现服务器上并没有预装这些数据库服务,或者需要更高级的功能,那么就需要自行安装和配置 MySQL 或 MariaDB。这通常可以通过云提供商的控制面板或通过 SSH 登录服务器后使用包管理工具(如 yum, apt-get 等)来完成。

检查系统软件

rpm -qa | grep mysql

这个命令非常有用,特别是在你需要知道系统中安装了哪些与 MySQL 相关的软件包时。例如,当你准备卸载 MySQL 或者排查某个与 MySQL 相关的问题时,这个命令可以帮助你快速定位相关的软件包。 

  1. rpm -qa: 这个命令用于列出系统中所有已安装的 RPM 软件包。-qa 中的 -q 指的是查询(query),a 表示所有(all),因此 -qa 表示查询所有已安装的软件包。

  2. |: 这是一个管道符号,用于将一个命令的输出作为另一个命令的输入。在这个例子中,rpm -qa 命令的输出会被传递给 grep mysql 命令进行进一步处理。

  3. grep mysql: 这个命令用于从输入流中搜索包含 "mysql" 字样的行。grep 是一个强大的文本搜索工具,它可以用来在文件中搜索固定字符串或正则表达式模式。在这个场景下,grep mysql 会筛选出包含 "mysql" 的行。

卸载软件包

rpm -qa | grep mysql | xargs - f yum remove 卸载

你提供的命令是用来卸载系统中已安装的 MySQL 相关软件包的。下面是对这条命令的详细解释:

  1. rpm -qa: 这条命令会列出系统中所有已安装的 RPM 包(RPM Package Manager,红帽软件包管理器)。-qa 表示查询所有已安装的包(query all)。

  2. | grep mysql: 通过管道符 (|),将前面命令的输出传递给 grep 命令,grep mysql 用于筛选出包含 "mysql" 字样的行。这意味着这条命令会找出所有名称中包含 "mysql" 的已安装包。

  3. xargs -f yum remove: xargs 命令用于读取标准输入中的每一行,并将其作为参数传递给指定的命令(在这里是 yum remove)。-f 选项表示强制(force),即使输入中有空行也会继续处理。

    • yum remove: 这是用于移除软件包的命令。yum 是 Yellowdog Updater Modified 的缩写,是一个基于 RPM 的软件包管理工具,主要用于安装、更新和移除软件包。

整个命令链的作用是找出所有名称包含 "mysql" 的已安装包,并尝试移除它们。请注意,这条命令会移除所有匹配的包,所以在执行前最好先确认一下要移除的包是否确实是不需要的,避免误删重要的系统组件。

如果你想要查看将会移除哪些包,但不实际执行移除操作,可以在最后加上 -n 选项来模拟命令执行而不真正执行:

rpm -qa | grep mysql | xargs -f yum remove -n

这将显示出 yum remove 命令将会尝试移除的软件包列表,但不会真正执行移除操作。这样可以让你确认即将移除的软件包是否正确。

另外,请确保在执行此类操作前备份重要数据,并且以具有足够权限的用户身份执行此命令,通常需要 root 权限。在 CentOS/RHEL 系统中,你可能需要使用 sudo 命令来获取必要的权限。

通过检查 /etc/my.cnf 文件是否存在来判断 MySQL 是否已被完全卸载。然而,需要注意的是,/etc/my.cnf 只是 MySQL 的主要配置文件之一,它的存在与否并不一定完全代表 MySQL 是否彻底卸载。此外,即使 rpm 包管理工具成功地卸载了 MySQL 的所有相关软件包,也可能留下一些配置文件或数据文件。

配置文件

  • /etc/my.cnf:这是 MySQL 的主配置文件。如果 MySQL 被卸载,这个文件可能会被保留下来,除非你在卸载过程中特别指定了删除配置文件的选项。
  • /etc/mysql/my.cnf:有时 MySQL 的配置文件可能会位于这个目录下。
  • /etc/mysql/mysql.conf.d/:这个目录下可能存放了一些额外的配置文件。

数据目录

  • /var/lib/mysql:这是 MySQL 默认的数据存储目录。即使你卸载了 MySQL,这个目录通常不会被自动删除,因为其中包含了所有的数据库文件,这些文件通常是用户希望保留的。

日志文件

  • /var/log/mysqld.log:这是 MySQL 的日志文件。卸载过程通常不会删除这个文件。

安装

  1. 获取MySQL官方YUM源

    • MySQL官方网站http://repo.mysql.com/)提供了适用于不同Linux发行版的软件包。对于CentOS,可以找到对应版本的RPM包,例如`mysql57-community-release-el7-10.noarch.rpm`,这个文件就是MySQL的YUM仓库源。
  2. 检查系统版本

    • 在安装任何软件之前,了解你的系统版本是非常重要的,因为不同的系统版本可能需要不同版本的软件包。通过命令cat /etc/redhat-release可以查看CentOS系统的版本信息。
  3. 安装前的准备

    • 首先,你需要下载适合你系统的MySQL YUM源包,并将其上传到你的Linux服务器上。
    • 之后,你可以查看当前的YUM源配置文件目录/etc/yum.repos.d/来确认是否已经有MySQL的相关YUM源配置文件。
  4. 安装MySQL YUM源

    • 使用rpm -Uvh <package>命令来安装YUM源包,其中<package>是之前下载并上传的RPM包的路径。这里使用了mysql57-community-release-el7-10.noarch.rpm作为例子。
    • 如果你在执行此命令时遇到权限问题,可以通过使用sudo命令或者切换到root用户来进行安装。
  5. 安装后的验证

    成功安装MySQL YUM源后,你可以再次查看/etc/yum.repos.d/目录,会发现多出了两个新的配置文件:mysql-community.repo 和 mysql-community-source.repo。这两个文件定义了如何从MySQL的官方仓库下载软件包。

检查是否成功安装

yum list | grep mysql

安装mysql服务

sudo yum install -y mysql-community-server

查看配置⽂件和数据存储位置

[@VM-0-3-centos 9.9]$ ls /etc/my.cnf
/etc/my.cnf
[@VM-0-3-centos 9.9]$ sudo ls /var/lib/mysql

启动服务

[@VM-0-3-centos 9.9]$ systemctl start mysqld.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===
查看启动服务
[@VM-0-3-centos 9.9]$ ps axj |grep mysqld
1 23183 23182 23182 ? -1 Sl 27 0:00 /usr/sbin/mysqld --
daemonize --pid-file=/var/run/mysqld/mysqld.pid
13134 23243 23242 13134 pts/0 23242 S+ 1005 0:00 grep --color=auto
mysqld

设置开机启动[可以不设]

# 开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload

⻅问题

解决 GPG 密钥过期问题

你在安装 MySQL 客户端时遇到了 GPG 密钥过期的问题,这是因为系统试图验证下载的软件包签名,但发现密钥无效或已过期。解决这个问题的方法是导入最新的 GPG 密钥。

解决方案:
  1. 下载并导入新的 GPG 密钥:你可以从 MySQL 官方网站下载最新的 GPG 密钥并导入到系统中。根据你的描述,解决方案如下:

    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  2. 验证密钥:确保密钥已经成功导入:

    rpm --import --printpkgs
  3. 重新安装 MySQL 客户端:重新尝试安装 MySQL 客户端,这次应该不会再有 GPG 密钥过期的问题:

    sudo yum install -y mysql-community-client

⻅问题

解决 GPG 密钥过期问题

你在安装 MySQL 客户端时遇到了 GPG 密钥过期的问题,这是因为系统试图验证下载的软件包签名,但发现密钥无效或已过期。解决这个问题的方法是导入最新的 GPG 密钥。

解决方案:

  1. 下载并导入新的 GPG 密钥:你可以从 MySQL 官方网站下载最新的 GPG 密钥并导入到系统中。根据你的描述,解决方案如下:

    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  2. 验证密钥:确保密钥已经成功导入:

    rpm --import --printpkgs
  3. 重新安装 MySQL 客户端:重新尝试安装 MySQL 客户端,这次应该不会再有 GPG 密钥过期的问题:

    sudo yum install -y mysql-community-client

配置登录

登录方法一:使用临时密码登录

  1. 获取临时密码

    sudo grep 'temporary password' /var/log/mysqld.log

    这条命令会查找 MySQL 启动日志文件 /var/log/mysqld.log 中包含 “temporary password” 的行,从而找到临时密码。

  2. 使用临时密码登录 MySQL

    mysql -uroot -p

    输入临时密码完成登录。

  3. 调整密码策略

    • 关闭密码复杂度验证:
      set global validate_password_policy=0;
    • 设置密码最小长度为 1:
      set global validate_password_length=1;
  4. 修改 root 用户密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'qwer@wu.888';

    这里将 root 用户的密码修改为 qwer@wu.888

  5. 刷新权限

    FLUSH PRIVILEGES;

登录方法二:直接尝试登录

对于某些最新版本的 MySQL,root 用户可能默认没有设置密码。你可以尝试直接登录:

mysql -uroot

登录方法三:绕过密码登录

如果上述方法都无法登录,可以暂时禁用密码验证:

  1. 编辑 MySQL 配置文件

    vim /etc/my.cnf

    [mysqld] 部分末尾添加:

    skip-grant-tables
  2. 重启 MySQL 服务

    systemctl restart mysqld
  3. 无需密码登录

    mysql -uroot
  4. 修改 root 用户密码: 登录后,你可以修改 root 用户的密码:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'qwer@wu.888';
    FLUSH PRIVILEGES;
  5. 恢复密码验证: 修改完密码后,需要恢复正常的密码验证机制。编辑配置文件,移除 skip-grant-tables 行:

    vim /etc/my.cnf

    删除或注释掉:

    #skip-grant-tables
  6. 再次重启 MySQL 服务

    systemctl restart mysqld

总结

  • 使用临时密码登录是最常见的方法之一,适用于首次安装 MySQL 时。
  • 如果 MySQL 版本较新,root 用户可能没有初始密码,可以直接尝试登录。
  • 如果以上两种方法都无法登录,可以通过临时禁用密码验证来登录 MySQL,修改密码后再恢复正常的验证机制。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com