【Linux服务器Java环境搭建】07 在linux中安装MySql,以及对MySQL的配置与远程连接
【Linux服务器Java环境搭建】01购买云服务器以及在服务器中安装Linux系统
【Linux服务器Java环境搭建】02 通过xftp和xshell远程连接云服务器
【Linux服务器Java环境搭建】03 Git工具安装
【Linux服务器Java环境搭建】04 JDK安装(JAVA环境安装)
【Linux服务器Java环境搭建】05 Node JS安装及环境变量配置
【Linux服务器Java环境搭建】06 maven项⽬构建和管理⼯具安装
待续…
【Linux服务器Java环境搭建】附录01:判断Linux服务器是X64还是arm架构的方式
【Linux服务器Java环境搭建】附录02:压缩格式tar.gz和tar.xz的区别
一、安装前准备
检查是否安装过mysql
通过如下命令来检查,如果结果为空,代表没有安装过
[root@yisu-655382d078761 ~]# rpm -qa | grep -i mysql #-i 忽略大小写
[root@yisu-655382d078761 ~]#
工具准备
- CentOS7 系统
- 链接CentOS系统的工具,如:Xshell和Xftp
二、下载MySql
-
下载地址:https://www.mysql.com/downloads/
-
点击
MySQL Community (GPL) Downloads

-
点击
MySQL Community Server

-
选择MySQL版本以及操作系统
说明:由于没有CentOS 7系统的版本,所以选择与之对应的 Red Hat Enterprise Linux
mysql-8.2.0-1.el7.x86_64.rpm-bundle.tar


-
下载系统所支持的安装包
注意:安装包名称中包含glibc版本和系统架构X64或arm
安装包名称:mysql-8.2.0-1.el7.x86_64.rpm-bundle.tar
glibc版本:2.17 (通过命令ldd --version查看对应版本)
系统架构:X64 请参考判断Linux服务器是X64还是arm架构的方式
centos7:el7
- 下载(如果不想登录,直接点击No thanks, just start my download.)

三、通过xftp上传到Linux服务器
将安装包通过xftp上传到服务器目录/root/lzh/

四、解压MySql安装包
将上⾯准备好的 MySQL 安装包解压到 /opt/mysql目录
在opt目录下创建mysql文件夹
在opt目录下,执行如下命令
[root@yisu-655382d078761 opt]# mkdir mysql

解压命令
通过如下命令将安装包解压到目录/opt/mysql,注意:一定要在opt目录下执行
[root@yisu-655382d078761 opt]# tar -xvf /lzh/mysql-8.2.0-1.el7.x86_64.rpm-bundle.tar -C mysql

五、检查依赖
- 检查/tmp临时目录权限(
必不可少)
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限
执行如下命令
[root@yisu-655382d078761 lzh]# chmod -R 777 /tmp

2. 检查libaio依赖,通过命令rpm -qa|grep libaio,如果能看到相关信息,则代表已经安装
[root@yisu-655382d078761 lzh]# rpm -qa|grep libaio
libaio-devel-0.3.109-13.el7.x86_64
libaio-0.3.109-13.el7.x86_64
[root@yisu-655382d078761 lzh]#

如果没有安装,请执行命令yum install libaio来进行安装。
3. 检查net-tools包,通过命令rpm -qa|grep net-tools,如果能看到相关信息,则代表已经安装
[root@yisu-655382d078761 lzh]# rpm -qa|grep net-tools
net-tools-2.0-0.22.20131004git.el7.x86_64
[root@yisu-655382d078761 lzh]#

如果没有安装,请执行命令yum install net-tools来进行安装。
六、安装mysql
在目录/opt/mysql/目录下,按照顺序执行如下命令
[root@yisu-655382d078761 mysql]# rpm -ivh mysql-community-common-8.2.0-1.el7.x86_64.rpm
[root@yisu-655382d078761 mysql]# rpm -ivh mysql-community-client-plugins-8.2.0-1.el7.x86_64.rpm
[root@yisu-655382d078761 mysql]# rpm -ivh mysql-community-libs-8.2.0-1.el7.x86_64.rpm
[root@yisu-655382d078761 mysql]# rpm -ivh mysql-community-client-8.2.0-1.el7.x86_64.rpm
[root@yisu-655382d078761 mysql]# rpm -ivh mysql-community-icu-data-files-8.2.0-1.el7.x86_64.rpm
[root@yisu-655382d078761 mysql]# rpm -ivh mysql-community-server-8.2.0-1.el7.x86_64.rpm
注意
- 当执行
rpm -ivh mysql-community-libs-8.2.0-1.el7.x86_64.rpm报错如下
[root@yisu-655382d078761 mysql]# rpm -ivh mysql-community-libs-8.2.0-1.el7.x86_64.rpm
warning: mysql-community-libs-8.2.0-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
error: Failed dependencies:
mariadb-libs is obsoleted by mysql-community-libs-8.2.0-1.el7.x86_64
解决方案:执行命令[root@yisu-655382d078761 mysql]# yum remove mysql-libs
- 当执行
rpm -ivh mysql-community-server-8.2.0-1.el7.x86_64.rpm报错如下
[root@yisu-655382d078761 mysql]# rpm -ivh mysql-community-server-8.2.0-1.el7.x86_64.rpm
错误:依赖检测失败:
/usr/bin/perl 被 mysql-community-server-8.0.26-1.el7.x86_64 需要
net-tools 被 mysql-community-server-8.0.26-1.el7.x86_64 需要
perl(Getopt::Long) 被 mysql-community-server-8.0.26-1.el7.x86_64 需要
perl(strict) 被 mysql-community-server-8.0.26-1.el7.x86_64 需要
解决方案:执行如下命令
yum install net-tools
yum install -y perl-Module-Install.noarch
如下为完整安装截图



七、查看mysql版本
- 通过如下命令查看mysql版本,如果能看到版本号,则代表mysql安装成功
[root@yisu-655382d078761 mysql]# mysql --version
mysql Ver 8.2.0 for Linux on x86_64 (MySQL Community Server - GPL)
[root@yisu-655382d078761 mysql]# mysqladmin --version
mysqladmin Ver 8.2.0 for Linux on x86_64 (MySQL Community Server - GPL)
[root@yisu-655382d078761 mysql]#
- 通过如下命令查看MySQL相关组件,如下
[root@yisu-655382d078761 mysql]# rpm -qa|grep -i mysql
mysql-community-client-8.2.0-1.el7.x86_64
mysql-community-icu-data-files-8.2.0-1.el7.x86_64
mysql-community-common-8.2.0-1.el7.x86_64
mysql-community-libs-8.2.0-1.el7.x86_64
mysql-community-server-8.2.0-1.el7.x86_64
mysql-community-client-plugins-8.2.0-1.el7.x86_64

八、初始化
如果要以root身份运行mysql服务,需要执行如下初始化命令
[root@yisu-655382d078761 mysql]# mysqld --initialize --user=mysql

注意
–initialize选项以“安全模式”来初始化,会为root用户生成一个临时密码,一定要记住,会在第一次登录时需要设置一个新的密码,临时密码可以通过如下命令查看
[root@yisu-655382d078761 mysql]# cat /var/log/mysqld.log
具体内容如下,root@localhost后面的信息为临时密码
[root@yisu-655382d078761 mysql]# cat /var/log/mysqld.log
2023-12-05T13:33:49.637740Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2023-12-05T13:33:49.642320Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.2.0) initializing of server in progress as process 72382
2023-12-05T13:33:49.658952Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-12-05T13:33:50.377497Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-12-05T13:33:51.978492Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rghBNVX?90F4
2023-12-05T13:33:55.838593Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
九、启动mysql服务、查看状态
注意:加不加.service后缀都可以
mysqld 这个可执行文件代表 mysql服务器程序,运行这个可执行文件后可以直接启动一个
服务器进程。
| 命令 | 说明 |
|---|---|
| systemctl status mysqld.service | 查看状态 |
| systemctl start mysqld.service | 启动服务 |
| systemctl stop mysqld.service | 停止服务 |
| systemctl restart mysqld.service | 重启服务 |
| ps -ef|grep -i mysql | 查看mysql进程 |
| systemctl disable mysqld.service | 设置为不自启动 |
| systemctl enable mysqld.service | 设置为自启动 |
启动服务后的状态

关闭服务后的状态

查看mysql进程

十、设置mysql服务为自启动
- 查看mysql服务是否自启动(默认为enabled,自启动)
systemctl list-unit-files | grep mysqld.service

- 如果不希望自启动,可以通过如下命令设置为不自启动
systemctl disable mysqld.service
- 如果不是自启动,可以通过如下命令设置为自启动
systemctl enable mysqld.service
十一、mysql登录、修改密码
- 首次登录
通过命令mysql -uroot -p进行登录,在Enter password: 录入初始化密码,输入密码后,可以进入mysql(进入mysql后,可以通过exit退出mysql)

- 修改密码
注意:因为初始化密码默认是过期的,所以查看数据库会报错,需要进行密码的修改

执行如下命令进行密码修改
mysql> alter user 'root'@'localhost' identified by '123456';
执行结果如下图

- 退出mysql

十二、设置允许远程登录
注意:修改密码尝试登录时,发现登录不了,可以通过如下步骤进行排查
1、在要远程的机器上ping Linux服务器的ip
ping ip地址

2、通过telnet ip:3306,查看端口是否开放

发现端口无法连接,那么需要开启端口或是关闭防火墙
3、关闭和开启防火墙
有关防火墙相关命令
| 命令 | 说明 |
|---|---|
| systemctl status firewalld.service | 查看防火墙状态 |
| yum install firewalld firewall-config | 安装防火墙 |
| systemctl start firewalld.service | 开启防火墙 |
| systemctl stop firewalld | 关闭防火墙 |
| systemctl enable firewalld | 设置开机启动防火墙 |
| systemctl disable firewalld | 设置开机禁用防火墙 |
| firewall-cmd --reload | 重启防火墙 |
未开启防火墙

防火墙开启后状态

4、开放端口号
端口号相关命令
| 命令 | 说明 |
|---|---|
| firewall-cmd --list-all | 查看开放的端口号 |
| firewall-cmd --add-service=http --permanent | 设置开放的端口号 |
| firewall-cmd --add-port=3306/tcp --permanent | 设置开放的端口号 |
| firewall-cmd --reload | 重启防火墙 |
没有开启任何端口号

设置开放的端口号

重启防火墙以及再次查看端口号

如果是云服务器,请在云服务防火墙中开放3306端口

修改完端口以及防火墙后,telnet后发现还是不行,那么咱们再继续下一步骤

5、设置用户root允许远程访问的IP
查看root用户权限
在Linux系统中登录mysql,进入mysql,执行如下sql语句,可以看到root用户的当前主机配置信息为localhost
use mysql;
SELECT Host, User FROM mysql.user;

- 如上图,Host列列出了允许用户登录所使用的IP;
- 其中
user=root Host=localhost,表示只能通过本机客户端去访问; - 同理,
User=root, Host=192.168.1.1指的是说root用户只能通过192.168.1.1的客户端去远程访问mysql; - 可以使用
%通配符:如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接; - 如果
Host=%,表示所有IP都有连接权限;
设置root用户权限
通过如下命令设置用户root的请求权限,此处设置为%,代表所有IP都有链接权限
update mysql.user set host='%' where user='root';

注意:Host修改完成后一定要执行flush privileges;使配置生效

十三、通过mysql客户端工具进行远程连接
撒花,测试链接成功!!!

【最后】总结
从安装、配置、最终链接,整体看来还是有点儿小复杂,在Linux系统中安装mysql的方式其实有多种,后期也会把其他的方式进行演示一遍,好了,今天就到这里,如有错漏,请大家随时指出.
相关文章:
【Linux服务器Java环境搭建】07 在linux中安装MySql,以及对MySQL的配置与远程连接
【Linux服务器Java环境搭建】01购买云服务器以及在服务器中安装Linux系统 【Linux服务器Java环境搭建】02 通过xftp和xshell远程连接云服务器 【Linux服务器Java环境搭建】03 Git工具安装 【Linux服务器Java环境搭建】04 JDK安装(JAVA环境安装) 【Linux服…...
用 LangChain 搭建基于 Notion 文档的 RAG 应用
如何通过语言模型查询 Notion 文档?LangChain 和 Milvus 缺一不可。 在整个过程中,我们会将 LangChain 作为框架,Milvus 作为相似性搜索引擎,用二者搭建一个基本的检索增强生成(RAG)应用。在之前的文章中&a…...
QT中如何使用自定义控件
在 Qt 中,要使用自定义控件,需要遵循以下步骤: 创建自定义控件: 首先,需要创建一个自定义控件类,该类继承自 QWidget 或 QGraphicsItem 等基本控件类,并实现其相关函数和槽函数等。 在头文件中…...
xcode ——Instrumets(网络连接调试)使用
环境: instruments 使用只能在真机调试时使用,且真机系统必须ios15 点击debug 按钮——Network——Profile in Instruments 然后就可以看到如下面板 展开运行的项目,点击session下的域名,下方回出现该域名下的网络请求。点击Deve…...
Ps:文字操作常用快捷键
对文字的设置操作,可在工具选项栏或“字符”面板上进行。但是,如果能记住并使用快捷键,可大大提高工作效率。 设置文字颜色 Color 1、选中几个或全部文字后,除了使用工具选项栏上的“颜色”按钮,还可以使用快捷键 Alt…...
SpringSecurity的默认登录页的使用
SpringSecurity的默认登录页的使用 01 前期准备 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mysql驱动--><dependency><grou…...
【Rust日报】2023-12-04 slint 成功案例
slint 成功案例 SK Signet是美国领先的电动车充电解决方案提供商,推出了适用于其电动车充电桩的新型HMI(人机界面)。支持15英寸和32英寸触摸屏。 该HMI由Slint制作,为充电站运营商提供了额外的商机。SK Signet经理Sang-Baek Lee表…...
嵌入式硬件和软件哪个好?
嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧! 嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案,要求理解嵌入式系统架构,有一…...
MySQL 8.x 自签证书通过keytool和openssl转成JKS文件
一、写在前面 数据库MySQL 8.0 通过自签命令在datadir下生成了所有的证书文件。由于Java的JDK不支持直接加载PEM格式的证书,所以需要将PEM格式证书转换成Java能够直接加载的JKS格式证书。我们需要将根证书ca.pem转换成JKS格式的根证书truststore.jks,将…...
MybatisPlus概述
MybatisPlus概述 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通…...
C++之枚举与宏定义
1 枚举enum C的枚举类型可以用来表示一组有限且固定的值。比如在如下代码中: enum Color { RED, GREEN, BLUE };定义了Color的枚举类型,分别对应三种不同的颜色。C编译器会为枚举类型的常量分配整数值,从0开始递增。因此,在这个…...
DAPP开发【09】NFT交易市场开发(hardhat测试)
测试文件下新建market.js文件 扁平化,将所有依赖放在tmp.sol,可以去给他人使用 npx hardhat flatten > tmp.sol 测试文件 const {expect} require(chai); const {ethers} require(hardhat);describe(Market,async function(){//定义三个合约&a…...
【Spring Boot】如何通过RestTemplate获取另一个服务的接口返回信息
背景 在查询订单信息的时候,需要获取用户的信息,同时订单和用户分属于不同的服务中,并且服务的数据库的数据分开的,其直接连接数据库并操作数据库是不可以的。那我们可以通过RestTemplate对象请求另一个服务的API接口获取相关的响…...
文字识别(OCR)专题——基于NCNN轻量级PaddleOCRv4模型C++推理
前言 PaddleOCR 提供了基于深度学习的文本检测、识别和方向检测等功能。其主要推荐的 PP-OCR 算法在国内外的企业开发者中得到广泛应用。在短短的几年时间里,PP-OCR 的累计 Star 数已经超过了32.2k,常常出现在 GitHub Trending 和 Paperswithcode 的日榜…...
❀My学习Linux命令小记录(14)❀
目录 ❀My学习Linux命令小记录(14)❀ 56.man指令 57.whatis指令 58.info指令 59.--help指令 60.uname指令 ❀My学习Linux命令小记录(14)❀ 56.man指令 功能说明:查看Linux中的指令帮助。 (ps.man命…...
SqlServer存储过程中使用in
第一步:创建测试存储过程: CREATE PROCEDURE [dbo].[test] deptCode varchar(MAX)AS BEGINSELECT * from DEPT_INFO_A where DEPT_CODE in (deptCode)END 此存储过程只是一个简单的查询 第二步测试: 传入的 deptCode为:101200…...
Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(二)
1 代码框架 整体项目结构如图: Common:公共库 Logs: 日志目录 Page: 页面元素 Report:测试报告 TestCase:测试用例 TestData: 测试数据 2 单模块运行 直接上代码: # -*- coding…...
Kotlin Lambda使用
Kotlin Lambda使用 fun main() /*: Unit*/ {// Lambda会慢慢的难度升级// Kotlin Unit Java void// TODO 下面全部都是函数声明, 既然是函数声明,就不能调用// 函数的声明 用lambda去描述函数的声明val method1 : () -> Unitval method2 : (Int, In…...
华容道问题求解第一部分_思路即方案设计
一、前言 华容道是一种传统的益智游戏,通常由一个长方形木板和若干个方块组成。其中包括一个或多个不同颜色的方块(也称为车块)和其他大小相同的方块(也称为障碍块)。游戏的目标是将车块从木板的一个端点移动到另一个…...
测试---UI自动化测试介绍
1、什么是自动化测试 概念:由程序代替人工进行系统校验的过程。--------计算机自己执行,好比手机上安装一个软件软件微信,抖音,微博之类的,在应用商城里面,下载对应app后,手机系统程序会自动安…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
