目录

下载rpm安装在线安装包
直接在linux上下载在线安装包
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
也可以在自己电脑上先下载mysql.rpm文件再上传到linux服务器上
下载地址https://dev.mysql.com/downloads/
挑选合适的系统版本

mysql rpm包依赖源
上面wget下载完成后,执行下面的命令确定依赖源。
sudo yum -y localinstall mysql80-community-release-el7-3.noarch.rpm
sudo以管理员权限运行命令。yum这是CentOS中的包管理器,用于安装、更新和删除软件包。localinstall这是yum命令的一个选项,表示从本地安装软件包。mysql80-community-release-el7-3.noarch.rpm这是MySQL 8 RPM文件的名称。

安装rpm包
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
-
rpm:RPM(Red Hat Package Manager)是Red Hat及类似系统(如CentOS、Fedora等)上的软件包管理器。它用于安装、卸载、更新、查询和验证软件包。 -
-ivh:这是rpm命令的选项,每个字母代表一个操作:i代表安装(install)。v代表详细输出(verbose)。这意味着在安装过程中,会显示详细的信息,有助于了解安装的进度和可能出现的问题。h代表显示安装进度(hash mark progress)。在软件包安装时,它会显示一个进度条,以#字符的形式表示进度。
-
mysql80-community-release-el7-3.noarch.rpm:这是要安装的软件包的名称。从名称可以看出,这是MySQL 8的社区版,并且是为CentOS/RHEL 7制作的。其中,“noarch”表示这个包不是为特定的硬件架构制作的,而是可以在任何架构上安装。

安装MySql
yum install mysql-server
yum:这是CentOS和其他基于Red Hat的Linux发行版中的默认包管理器。它用于从指定的软件仓库中自动安装、升级、配置甚至删除软件包,解决了软件包之间的依赖关系问题。install:这是yum命令的一个选项,表示要安装一个或多个软件包。mysql-server:这是要安装的软件包的名称,代表MySQL的服务器软件。
运行的时候有要输入的地址全部填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在安装过程中不进行GPG(GNU 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

提示
在执行service mysqld status时,系统会通过调用相关的系统命令来检查MySQL服务的状态。如果MySQL服务正在运行,命令将返回关于服务的信息,例如服务的进程ID(PID)和已运行的时间等。这些信息可以提供关于MySQL服务当前状态的详细信息。
如果MySQL服务没有运行,命令将返回服务未运行的消息。这表示MySQL服务器没有在当前系统上运行。
查看3306端口是否启动,如果启动了则表示mysql处于运行状态。
netstat -anp|grep 3306

提示
netstat -anp 是一个命令,用于显示网络连接的详细信息。-a 参数显示所有连接和监听端口,-n 参数显示地址和端口号而不是尝试解析它们,-p 参数显示哪个进程正在使用连接。
grep 3306 是用来在netstat的输出中查找端口号3306的记录。
登录MySQL
查看在日志中的MySQL初始密码
grep "A temporary password" /var/log/mysqld.log

提示
grep "A temporary password" /var/log/mysqld.log 是在 /var/log/mysqld.log 日志文件中搜索包含 "A temporary password" 的行
使用初始密码登录mysql
mysql -u root -p
会提示输入密码,密码在输入时不会显示,建议直接复制粘贴


修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL@123';
注
注意8位数以上和种类至少大+写+小写+符号+数字
更改密码复杂程度
因为mysql的密码设置的太复杂不太好记,这里把密码设置的简单一点
先看看当前的密码验证策略
输入:SHOW VARIABLES LIKE 'validate_password.%';

策略说明:
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;

注
-
从
user表中选取host、user、authentication_string和plugin这四个字段的所有记录。 -
各个字段的意义如下:
-
host: 该字段记录了用户可以从哪个主机连接到数据库。例如,localhost表示只能从本地计算机连接,而%表示从任何主机都可以连接。 -
user: 这是数据库的用户名。结合host字段,可以确定一个特定的数据库连接权限。 -
authentication_string: 这是用户的加密后的密码或其他身份验证信息。在MySQL 5.7及之后的版本中,密码字段从password变为了authentication_string。 -
plugin: 这指示了用于身份验证的插件。例如,常见的值有mysql_native_password和caching_sha2_password。插件决定了密码如何被验证和加密。
- 修改user表中的
Host:update user set host = '%' where user = 'root' and host='localhost';

注
这条语句使用的是MySQL的UPDATE语句,它的意思是:在用户表(user)中,将所有用户名为'root'并且主机名为'localhost'的用户的host字段的值更新为'%'。
这里,'%'表示任何主机都可以连接。
- 最后刷新一下:
flush privileges; - 这样就可以使用Navicat来连接服务器上的数据库了
查看防火墙状态
在防火墙中开启3306端口
查看防火墙状态systemctl status firewalld.service
现在是开启状态

如果是关闭状态则运行下面的命令
这里把防火墙打开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上的数据库

相关信息
常用MySQL服务命令:
mysql -u username -p#登录MySQLquit#退出MySQLsystemctl start mysqld.service#启动MySQLsystemctl stop mysqld.service#结束systemctl restart mysqld.service#重启systemctl enable mysqld.service#开机自启select version();#查看MySQL版本
本文作者:Casear
本文链接:
版权声明:参考于https://blog.csdn.net/