编辑
2023-12-07
MySQL
00
请注意,本文编写于 425 天前,最后修改于 261 天前,其中某些信息可能已经过时。

目录

下载rpm安装在线安装包
mysql rpm包依赖源
安装rpm包
安装MySql
服务安装、启动
启动mysql命令:
开机启动命令:
验证
查看mysql服务运行状态
查看3306端口是否启动,如果启动了则表示mysql处于运行状态。
登录MySQL
查看在日志中的MySQL初始密码
使用初始密码登录mysql
修改初始密码
更改密码复杂程度
策略说明:<br>
远程连接mysql
查看防火墙状态
开放端口
重启防火墙
Navicat连接CentOS7上的数据库

下载rpm安装在线安装包

直接在linux上下载在线安装包

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

image.png 也可以在自己电脑上先下载mysql.rpm文件再上传到linux服务器上
下载地址https://dev.mysql.com/downloads/

image.png 挑选合适的系统版本 image.png

mysql rpm包依赖源

上面wget下载完成后,执行下面的命令确定依赖源。

sudo yum -y localinstall mysql80-community-release-el7-3.noarch.rpm
  1. sudo以管理员权限运行命令。
  2. yum这是CentOS中的包管理器,用于安装、更新和删除软件包。
  3. localinstall这是yum命令的一个选项,表示从本地安装软件包。
  4. mysql80-community-release-el7-3.noarch.rpm这是MySQL 8 RPM文件的名称。

image.png

安装rpm包

rpm -ivh mysql80-community-release-el7-3.noarch.rpm
  1. rpm:RPM(Red Hat Package Manager)Red Hat及类似系统(如CentOSFedora等)上的软件包管理器。它用于安装、卸载、更新、查询和验证软件包。

  2. -ivh:这是rpm命令的选项,每个字母代表一个操作:

    • i 代表安装(install)。
    • v 代表详细输出(verbose)。这意味着在安装过程中,会显示详细的信息,有助于了解安装的进度和可能出现的问题。
    • h 代表显示安装进度(hash mark progress)。在软件包安装时,它会显示一个进度条,以#字符的形式表示进度。
  3. mysql80-community-release-el7-3.noarch.rpm:这是要安装的软件包的名称。从名称可以看出,这是MySQL 8的社区版,并且是为CentOS/RHEL 7制作的。其中,“noarch”表示这个包不是为特定的硬件架构制作的,而是可以在任何架构上安装。

image.png

安装MySql

yum install mysql-server
  1. yum:这是CentOS和其他基于Red HatLinux发行版中的默认包管理器。它用于从指定的软件仓库中自动安装、升级、配置甚至删除软件包,解决了软件包之间的依赖关系问题。
  2. install:这是yum命令的一个选项,表示要安装一个或多个软件包。
  3. mysql-server:这是要安装的软件包的名称,代表MySQL的服务器软件。

image.png 运行的时候有要输入的地址全部填y即可

提示

遇到Failing package is:mysql-community-icu-data-files-8.0.29-1.el7.x86_64 GPG Keys are configured as(公钥未安装) 问题时在yum install 版本后面加上 --nogpgcheck,即可绕过GPG验证成功安装

提示公钥未安装时
yum install mysql-community-server --nogpgcheck

--nogpgcheck:这是一个参数,指示yum在安装过程中不进行GPGGNU Privacy Guard)检查。GPG是一种加密软件,用于保护数据的完整性和机密性。在默认情况下,yum在安装软件包时会进行GPG检查,以确保软件包的完整性和来源的可靠性。但是,有时候由于某些原因,例如源key错误,GPG检查可能会失败,导致安装失败。添加--nogpgcheck参数可以跳过GPG检查,使安装继续进行。

服务安装、启动

启动mysql命令:

systemctl start mysqld

开机启动命令:

systemctl enable mysqld
systemctl daemon-reload

systemctl enable mysqld:这个命令将MySQL的服务在系统启动时设置为自动启动。这意味着每次系统启动时,MySQL服务也会自动启动。

systemctl daemon-reload:这个命令会重新加载systemd守护进程的配置文件,以使最新的配置生效。当你修改了systemd服务的配置文件后,通常需要运行这个命令来使更改生效。

验证

查看mysql服务运行状态

service mysqld status

image.png

提示

在执行service mysqld status时,系统会通过调用相关的系统命令来检查MySQL服务的状态。如果MySQL服务正在运行,命令将返回关于服务的信息,例如服务的进程IDPID)和已运行的时间等。这些信息可以提供关于MySQL服务当前状态的详细信息。
如果MySQL服务没有运行,命令将返回服务未运行的消息。这表示MySQL服务器没有在当前系统上运行。

查看3306端口是否启动,如果启动了则表示mysql处于运行状态。

netstat -anp|grep 3306

image.png

提示

netstat -anp 是一个命令,用于显示网络连接的详细信息。-a 参数显示所有连接和监听端口,-n 参数显示地址和端口号而不是尝试解析它们,-p 参数显示哪个进程正在使用连接。

grep 3306 是用来在netstat的输出中查找端口号3306的记录。

登录MySQL

查看在日志中的MySQL初始密码

grep "A temporary password" /var/log/mysqld.log

image.png

提示

grep "A temporary password" /var/log/mysqld.log 是在 /var/log/mysqld.log 日志文件中搜索包含 "A temporary password" 的行

使用初始密码登录mysql

mysql -u root -p

会提示输入密码,密码在输入时不会显示,建议直接复制粘贴

image.png

image.png

修改初始密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL@123';

注意8位数以上和种类至少大+写+小写+符号+数字

更改密码复杂程度

因为mysql的密码设置的太复杂不太好记,这里把密码设置的简单一点

先看看当前的密码验证策略

输入:SHOW VARIABLES LIKE 'validate_password.%';

image.png

策略说明:

  • validate_password.length 是密码的最小长度,默认是8,我们把它改成6
  • 输入:set global validate_password.length=6;
  • validate_password.policy 验证密码的复杂程度,我们把它改成0
  • 输入:set global validate_password.policy=0;
  • validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它关掉
  • 输入:set global validate_password.check_user_name=off;

远程连接mysql

  • 连接服务器: mysql -u root -p
  • 看当前所有数据库:show databases;
  • 进入mysql数据库:use mysql;
  • 查看mysql数据库中所有的表:show tables;
  • 查看user表中的数据:select host, user, authentication_string, plugin from user;

image.png

  • user表中选取hostuserauthentication_stringplugin这四个字段的所有记录。

  • 各个字段的意义如下:

  • host: 该字段记录了用户可以从哪个主机连接到数据库。例如,localhost表示只能从本地计算机连接,而%表示从任何主机都可以连接。

  • user: 这是数据库的用户名。结合host字段,可以确定一个特定的数据库连接权限。

  • authentication_string: 这是用户的加密后的密码或其他身份验证信息。在MySQL 5.7及之后的版本中,密码字段从password变为了authentication_string

  • plugin: 这指示了用于身份验证的插件。例如,常见的值有mysql_native_passwordcaching_sha2_password。插件决定了密码如何被验证和加密。

  • 修改user表中的Hostupdate user set host = '%' where user = 'root' and host='localhost';

image.png

这条语句使用的是MySQLUPDATE语句,它的意思是:在用户表(user)中,将所有用户名为'root'并且主机名为'localhost'的用户的host字段的值更新为'%'。

这里,'%'表示任何主机都可以连接。

  • 最后刷新一下:flush privileges;
  • 这样就可以使用Navicat来连接服务器上的数据库了

查看防火墙状态

在防火墙中开启3306端口

查看防火墙状态
systemctl status firewalld.service

现在是开启状态 image.png

如果是关闭状态则运行下面的命令

这里把防火墙打开
systemctl start firewalld

开放端口

  • firewall-cmd --zone=public --list-ports 查看所有打开的端口
  • firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开放3306端口
  • firewall-cmd --reload # 配置立即生效

重启防火墙

systemctl restart firewalld.service

Linux系统中,firewalld是一个用于管理IP包过滤规则的服务,它可以用来保护你的系统免受网络攻击。通过重启firewalld服务,你可以确保任何对防火墙规则的更改都会生效。

当你执行systemctl restart firewalld.service命令时,系统会先停止firewalld服务,然后再重新启动它。这样可以确保所有的防火墙规则都被重新加载并生效。

Navicat连接CentOS7上的数据库

image.png

相关信息

常用MySQL服务命令:

  • mysql -u username -p #登录MySQL
  • quit #退出MySQL
  • systemctl start mysqld.service #启动MySQL
  • systemctl stop mysqld.service #结束
  • systemctl restart mysqld.service #重启
  • systemctl enable mysqld.service #开机自启
  • select version(); #查看MySQL版本

本文作者:Casear

本文链接:

版权声明:参考于https://blog.csdn.net/