【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的方式其实有多种,后期也会把其他的方式进行演示一遍,好了,今天就到这里,如有错漏,请大家随时指出.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/221027.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jupyter notebook中添加内核kernel

step1 检查环境中是否有kernel python -m ipykernel --versionstep2 若没有kernel,则需要安装 kernel conda install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simplestep3 查看已添加的内核 jupyter kernelspec liststep4 添加内核 python -m ipykerne…

Vue3 pinia的基本使用

pinia的使用跟vuex很像,去除了很多没用的api,写法有两种,一种老式的选项式api还有一种组合式api,用哪种根据自己喜好来,以下示例为组合式api 更多教程参考官网:pinia官网https://pinia.vuejs.org/zh/ 安装…

鱼子酱产品供应商【富原集团】申请1380万美元纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于香港的鱼子酱产品供应商富原集团(国际)有限公司(Top Wealth Group Holding Ltd)近期已向美国证券交易委员会(SEC)提交招股书,申…

react-router v6实现动态的title(react-router-dom v6)

前言 react-router-dom v6 默认不支持 title设置了,所以需要自己实现一下。 属性描述path指定路由的路径,可以是字符串或字符串数组。当应用的URL与指定的路径匹配时,该路由将会被渲染。element指定要渲染的React组件或元素。children代表…

TensoRF: Tensorial Radiance Fields

TensoRF: Tensorial Radiance Fields TensoRF是ECCV2022一个非常有特色的工作。作者在三维场景表示中引入张量分解的技术,将4D张量分解成多个低秩的张量分量,实现更好的重建质量、更快的重建速度、更小的模型体积。 文章目录 TensoRF: Tensorial Radian…

Chapter 6 Managing Application Engine Programs 管理应用程序引擎程序

Chapter 6 Managing Application Engine Programs 管理应用程序引擎程序 Running Application Engine Programs 运行应用程序引擎程序 This section provides an overview of program run options and discusses how to: 本节提供程序运行选项的概述,并讨论如何…

【已解决】MySQL:执行存储过程报错(MySQL字符集和排序方式冲突)

目录 问题现象: 问题分析: 解决方法: 拓展: 1、转换条件两边的字段或值为二进制数据: 2、转换条件两边的字段或值的字符集和排序方式: 3、修改列、表、库的字符集和排序方式 参考链接: 问…

基于Git的代码工程管理——学习记录一

一、Git简概[1] Git是一个分布式版本控制系统,它跟踪任何一组计算机文件的更改,通常用于在软件开发过程中协调协作开发源代码的程序员之间的工作。其为实现快速、数据完整性以及分布式非线性工作流程(在不同计算机上运行数千个并行分支&#…

电脑上mp4视频文件无缩略图怎么办

前言:有时候电脑重装后电脑上的mp4视频文件无缩略图,视频文件数量比较多的时候查找比较麻烦 以下方法亲测有效: 1、下载MediaPreview软件 2、软件链接地址:https://pan.baidu.com/s/1bzVJpmcHyGxXNjnzltojtQ?pwdpma0 提取码&…

解密IIS服务器API跨域问题的终极解决方案

在当今数字化时代,API已成为现代应用程序的核心组件。然而,当你使用IIS(Internet Information Services)服务器提供API时,你可能会遇到一个常见的挑战:API跨域问题。这个问题经常困扰着开发人员&#xff0c…

基于springboot的滑雪场管理系统源码

🍅 简介:500精品计算机源码学习,有8个项目关注搏主即可领取。另送简历模板、答辩模板、学习资料、答辩常见问题【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 文末获取源码 目录 一、以下学…

java学习part37定制排序和自然排序

150-常用类与基础API-使用Comparator接口实现定制排序及对比_哔哩哔哩_bilibili 1.自然排序 2.定制排序 对于一些排序方法,允许传入的话按定制的排序规则来,不传入默认按自然排序来。 匿名方式 3区别

JavaWeb-JavaScript

一、什么是JavaScript JavaScript是由网景的LiveScript发展而来的客户端脚本语言,主要目的是为了解决服务端语言遗留的速度问题,为客户提供更流畅的浏览效果。JavaScript可以实现网页内容、数据的动态变化和动画特效等。JavaScript的标准由ECMA维护&…

超大规模集成电路设计----CMOS反相器(五)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----数字集成电路——电路、系统与设计(第二版)及中国科学院段成华教授PPT 超大规模集成电路设计----CMOS反相器(五) 5.1 静态CMOS反相器综述5.1.1 静态CMOS反相器优点…

Excel——TEXTJOIN函数实现某一列值相等时合并其他列

一、TEXTJOIN函数介绍 公式TEXTJOIN(分隔符, 忽略空白单元格, 字符串1…) 分隔符:文本字符串,或者为空,或用双引号引起来的一个或多个字符,或对有效文本字符串的引用。如果提供一个数字,则将被视为文本。 忽略空白单…

【论文笔记】A Transformer-based Approach for Source Code Summarization

A Transformer-based Approach for Source Code Summarization 1. Introduction2. Approach2.1 ArchitectureSelf-AttentionCopy Attention 2.2 Position Representations编码绝对位置编码成对关系 1. Introduction 生成描述程序功能的可读摘要称为源代码摘要。在此任务中&…

卡通渲染总结《一》

本文是在看完之前的综述论文《Cartoon Style Rendering》的总结,论文时间是2008年有点早,但有一定启发意义。 前言 首先卡通渲染是非真实化渲染(NPR)的一个部分.而NPR旨在模拟出手工插图的效果例如油画、墨水画、漫画风格作品。 …

【Vulnhub 靶场】【hacksudo: FOG】【简单 - 中等】【20210514】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/hacksudo-fog,697/ 靶场下载:https://download.vulnhub.com/hacksudo/hacksudo-FOG.zip 靶场难度:简单 - 中等 发布日期:2021年05月14日 文件大小:1.3 GB 靶场作…

禅道v11.6 基于linux环境下的docker容器搭建的靶场

一、环境搭建 linux环境下的 在docker环境下安装禅道CMS V11.6 docker run --name zentao_v11.6 -p 8084:80 -v /u01/zentao/www:/app/zentaopms -v /u01/zentao/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d docker.io/yunwisdom/zentao:v11.6二、常见问题 1.删除…

【数电笔记】16-卡诺图绘制(逻辑函数的卡诺图化简)

目录 说明: 最小项卡诺图的组成 1. 相邻最小项 2. 卡诺图的组成 2.1 二变量卡诺图 2.2 三表变量卡诺图 2.3 四变量卡诺图 3. 卡诺图中的相邻项(几何相邻) 说明: 笔记配套视频来源:B站;本系列笔记并…