当前位置: 首页 > news >正文

【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 ~]# 

工具准备

  1. CentOS7 系统
  2. 链接CentOS系统的工具,如:Xshell和Xftp

二、下载MySql

  1. 下载地址:https://www.mysql.com/downloads/

  2. 点击MySQL Community (GPL) Downloads
    在这里插入图片描述

  3. 点击MySQL Community Server
    在这里插入图片描述

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

  5. 下载系统所支持的安装包
    注意:安装包名称中包含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

  1. 下载(如果不想登录,直接点击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

在这里插入图片描述

五、检查依赖

  1. 检查/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 

注意

  1. 当执行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

  1. 当执行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版本

  1. 通过如下命令查看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]# 
  1. 通过如下命令查看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服务为自启动

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

在这里插入图片描述

  1. 如果不希望自启动,可以通过如下命令设置为不自启动
systemctl disable mysqld.service
  1. 如果不是自启动,可以通过如下命令设置为自启动
systemctl enable mysqld.service

十一、mysql登录、修改密码

  1. 首次登录
    通过命令mysql -uroot -p进行登录,在Enter password: 录入初始化密码,输入密码后,可以进入mysql(进入mysql后,可以通过exit退出mysql)
    在这里插入图片描述
  2. 修改密码
    注意:因为初始化密码默认是过期的,所以查看数据库会报错,需要进行密码的修改
    在这里插入图片描述
    执行如下命令进行密码修改
mysql> alter user 'root'@'localhost' identified by '123456';

执行结果如下图
在这里插入图片描述

  1. 退出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是美国领先的电动车充电解决方案提供商&#xff0c;推出了适用于其电动车充电桩的新型HMI&#xff08;人机界面&#xff09;。支持15英寸和32英寸触摸屏。 该HMI由Slint制作&#xff0c;为充电站运营商提供了额外的商机。SK Signet经理Sang-Baek Lee表…...

嵌入式硬件和软件哪个好?

嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的&#xff0c;首先我们先来看看嵌入式硬件工程师吧! 嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案&#xff0c;要求理解嵌入式系统架构&#xff0c;有一…...

MySQL 8.x 自签证书通过keytool和openssl转成JKS文件

一、写在前面 数据库MySQL 8.0 通过自签命令在datadir下生成了所有的证书文件。由于Java的JDK不支持直接加载PEM格式的证书&#xff0c;所以需要将PEM格式证书转换成Java能够直接加载的JKS格式证书。我们需要将根证书ca.pem转换成JKS格式的根证书truststore.jks&#xff0c;将…...

MybatisPlus概述

MybatisPlus概述 无侵入&#xff1a;只做增强不做改变&#xff0c;引入它不会对现有工程产生影响&#xff0c;如丝般顺滑损耗小&#xff1a;启动即会自动注入基本 CURD&#xff0c;性能基本无损耗&#xff0c;直接面向对象操作强大的 CRUD 操作&#xff1a;内置通用 Mapper、通…...

C++之枚举与宏定义

1 枚举enum C的枚举类型可以用来表示一组有限且固定的值。比如在如下代码中&#xff1a; enum Color { RED, GREEN, BLUE };定义了Color的枚举类型&#xff0c;分别对应三种不同的颜色。C编译器会为枚举类型的常量分配整数值&#xff0c;从0开始递增。因此&#xff0c;在这个…...

DAPP开发【09】NFT交易市场开发(hardhat测试)

测试文件下新建market.js文件 扁平化&#xff0c;将所有依赖放在tmp.sol&#xff0c;可以去给他人使用 npx hardhat flatten > tmp.sol 测试文件 const {expect} require(chai); const {ethers} require(hardhat);describe(Market,async function(){//定义三个合约&a…...

【Spring Boot】如何通过RestTemplate获取另一个服务的接口返回信息

背景 在查询订单信息的时候&#xff0c;需要获取用户的信息&#xff0c;同时订单和用户分属于不同的服务中&#xff0c;并且服务的数据库的数据分开的&#xff0c;其直接连接数据库并操作数据库是不可以的。那我们可以通过RestTemplate对象请求另一个服务的API接口获取相关的响…...

文字识别(OCR)专题——基于NCNN轻量级PaddleOCRv4模型C++推理

前言 PaddleOCR 提供了基于深度学习的文本检测、识别和方向检测等功能。其主要推荐的 PP-OCR 算法在国内外的企业开发者中得到广泛应用。在短短的几年时间里&#xff0c;PP-OCR 的累计 Star 数已经超过了32.2k&#xff0c;常常出现在 GitHub Trending 和 Paperswithcode 的日榜…...

❀My学习Linux命令小记录(14)❀

目录 ❀My学习Linux命令小记录&#xff08;14&#xff09;❀ 56.man指令 57.whatis指令 58.info指令 59.--help指令 60.uname指令 ❀My学习Linux命令小记录&#xff08;14&#xff09;❀ 56.man指令 功能说明&#xff1a;查看Linux中的指令帮助。 &#xff08;ps.man命…...

SqlServer存储过程中使用in

第一步&#xff1a;创建测试存储过程&#xff1a; CREATE PROCEDURE [dbo].[test] deptCode varchar(MAX)AS BEGINSELECT * from DEPT_INFO_A where DEPT_CODE in (deptCode)END 此存储过程只是一个简单的查询 第二步测试&#xff1a; 传入的 deptCode为&#xff1a;101200…...

Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(二)

1 代码框架 整体项目结构如图&#xff1a; Common&#xff1a;公共库 Logs&#xff1a; 日志目录 Page&#xff1a; 页面元素 Report&#xff1a;测试报告 TestCase&#xff1a;测试用例 TestData&#xff1a; 测试数据 2 单模块运行 直接上代码&#xff1a; # -*- coding…...

Kotlin Lambda使用

Kotlin Lambda使用 fun main() /*: Unit*/ {// Lambda会慢慢的难度升级// Kotlin Unit Java void// TODO 下面全部都是函数声明&#xff0c; 既然是函数声明&#xff0c;就不能调用// 函数的声明 用lambda去描述函数的声明val method1 : () -> Unitval method2 : (Int, In…...

华容道问题求解第一部分_思路即方案设计

一、前言 华容道是一种传统的益智游戏&#xff0c;通常由一个长方形木板和若干个方块组成。其中包括一个或多个不同颜色的方块&#xff08;也称为车块&#xff09;和其他大小相同的方块&#xff08;也称为障碍块&#xff09;。游戏的目标是将车块从木板的一个端点移动到另一个…...

测试---UI自动化测试介绍

1、什么是自动化测试 概念&#xff1a;由程序代替人工进行系统校验的过程。--------计算机自己执行&#xff0c;好比手机上安装一个软件软件微信&#xff0c;抖音&#xff0c;微博之类的&#xff0c;在应用商城里面&#xff0c;下载对应app后&#xff0c;手机系统程序会自动安…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...