阿里云安装和远程连接mysql8.0数据库

news2024/11/24 14:10:16

目录

在云服务器安装MySQL8.0(详细版):

安装过程中遇到的两个问题的解决方式

无法获取'support-files/mysql.server' 的文件状态(stat): 没有那个文件或目录

解决不能进行远程连接,报错Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.


在云服务器安装MySQL8.0(详细版):

1、下载Linux安装包:MySQL :: Download MySQL Community Server (Archived Versions)

2、安装libaio依赖

libaio 是一个用于异步输入/输出操作的库,它提供了对异步 I/O 接口的支持。它是许多应用程序和数据库引擎所需的依赖项之一。在安装MySQL等数据库引擎时,通常需要安装 libaio 作为其依赖项,因为这些数据库引擎通常会使用异步 I/O 操作来提高数据读写的效率和性能。

yum install libaio

 3、将下载的mysql压缩包放到 /usr/local/目录,我是使用finalshell进行云服务器的连接的,所以可以直接把刚刚下载的压缩包上传到云服务器:

cd /usr/local/

4、解压MySQL

tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz

5、重新命名文件夹

mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8

6、在刚刚重新命名的mysql8文件夹下创建两个新的文件夹

mkdir data
mkdir tmp

 7、创建用户组以及用户和密码,可能会出现mysql用户已经存在,问题不大,不用管。

groupadd mysql
useradd -g mysql mysql

8、对mysql用户进行文件授权

chown -R mysql.mysql /usr/local/mysql8/

9、编辑my.cnf文件 vi /etc/my.cnf

vi /etc/my.cnf 

配置:直接复制进行就行

[mysqld]
basedir = /usr/local/mysql8
datadir = /usr/local/mysql8/data
port = 3306
socket = /usr/local/mysql8/tmp/mysql.sock

#必填项
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
socket = /usr/local/mysql8/tmp/mysql.sock

10、切换到mysql8的bin目录下,进行初始化

cd bin            或者是  sd /usr/local/mysql8/bin

./mysqld --initialize --user=mysql   初始化mysql

初始化后会出现一个随机密码,这个用来登录用的,需要记录下来,方便后面进行密码的修改.

11、添加mysqld服务到系统

先切换到support-files目录:

先查询刚刚解压包中mysql.server文件的位置:
find / -name mysql.server

 进行文件的复制:

cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysql.server

为文件进行授权和添加mysql服务:

chmod +x /etc/init.d/mysql.server

chkconfig --add mysql.server

查看是否添加成功:

chkconfig --list

 12、将mysql命令添加到服务

ln -sf /usr/local/mysql8/bin/mysql /usr/bin

13、启动服务

service mysql.server start

14、查看MySQL的启动状态

service mysql.server status

15、登录MySQL

mysql -uroot -p   

密码是刚刚生成的随机密码

修改root密码:

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

flush privileges;

16、切换到mysql库进行远程连接的权限设置:

use mysql;

select host,user,plugin from user;

update user set host = '%' where user ='root';
flush privileges;

select host,user,plugin from user;

17、在阿里云服务器配置安全组,开放3306端口

 18、在防火墙开放3306端口

1、检查防火墙状态:如果防火墙处于活动状态,将显示相关信息,包括防火墙是否正在运行。
sudo systemctl status firewalld

2、查看防火墙规则:显示当前防火墙规则的详细列表,包括允许和拒绝的规则。
sudo firewall-cmd --list-all

3、允许数据库端口:如果发现防火墙规则中没有允许数据库端口的规则,可以添加相应的规则:
sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent

sudo firewall-cmd --reload

19、远程连接测试:

创建数据库进行测试:

create database reggie;

use reggie;

CREATE TABLE `user` (
  `id` bigint NOT NULL COMMENT '主键',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
  `phone` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '手机号',
  `sex` varchar(2) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '性别',
  `id_number` varchar(18) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '身份证号',
  `avatar` varchar(500) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '头像',
  `status` int DEFAULT '0' COMMENT '状态 0:禁用,1:正常',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=DYNAMIC COMMENT='用户信息';

INSERT INTO reggie.`user`
(id, name, phone, sex, id_number, avatar, status)
VALUES(1526738180875788289, '小白', '115874605588', NULL, NULL, NULL, 1);

使用dbeaver进行远程连接:

 测试连接,连接成功!

安装过程中遇到的两个问题的解决方式

无法获取'support-files/mysql.server' 的文件状态(stat): 没有那个文件或目录

问题1:执行 cp support-files/mysql.server /etc/init.d/mysql.server 命名复制mysql.server到指定的文件时,会出现:无法获取'support-files/mysql.server' 的文件状态(stat): 没有那个文件或目录

解决方法:使用 find / -name mysql.server 来查找mysql.server文件的路径,找到后替换上面指令的路径,重新执行上面的cp指令即可。

第二个问题:不能使用远程连接这个服务器中的MySQL,通过下面的各种排查后发现是云服务器没有对3306这个端口进行开放。

使用Dbeaver进行远程连接报错:Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. connect timed out  connect timed out

网上的查询资料后,各种说法都有,比如:服务器上的MySQL没有启动,配置文件中的端口写错了,阿里云的安全组没有开放3306连接权限,驱动类名中没有加cj(com.mysql.cj.jdbc.Driver)。如果是根据上面的参考文章来进行安装的话,都不是这些原因导致不能远程连接的,经过各种排查后发现是服务器的防火墙没有开放3306这个端口。

解决方法:

1、检查防火墙状态:如果防火墙处于活动状态,将显示相关信息,包括防火墙是否正在运行。
sudo systemctl status firewalld

2、查看防火墙规则:显示当前防火墙规则的详细列表,包括允许和拒绝的规则。
sudo firewall-cmd --list-all

3、允许数据库端口:如果发现防火墙规则中没有允许数据库端口的规则,可以添加相应的规则:
sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent

sudo firewall-cmd --reload

4、重新测试连接

解决不能进行远程连接,报错Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

解决不能远程连接的思路:前提是配置文件是对的,阿里云服务器的入数据的安全组也配置了,数据库也允许远程连接,但是还不能进行远程连接数据库。

1、检查网络连接问题:确保网络连接正常,并且能够与数据库服务器进行通信。

ping 目标主机ip地址   看没有字节可以接受到,如下

56(84) bytes of data.
64 bytes from 目标主机的 IP 地址: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 目标主机的 IP 地址: icmp_seq=2 ttl=64 time=0.056 ms
...

2、查看数据库服务器是否成功未运行:

ps -ef | grep mysqld  检查MySQL数据库是否在运行

netstat -tuln | grep 3306  检查数据库监听的端口

 3、检查数据库服务器的配置,确保它正在监听正确的端口并允许远程连接:

telnet 目标主机 端口  

正确的回应应该如下:
Trying 目标主机的 IP 地址...
Connected to 目标主机的 IP 地址.
Escape character is '^]'.
如果无法连接到该端口,则表示该端口可能未被监听或存在连接问题。

4、防火墙问题:如果数据库服务器位于防火墙后面,请确保防火墙已正确配置以允许远程连接(用的是CentOS 操作系统)。通常 MySQL 默认的端口 3306。

1、检查防火墙状态:如果防火墙处于活动状态,将显示相关信息,包括防火墙是否正在运行。
sudo systemctl status firewalld

2、查看防火墙规则:显示当前防火墙规则的详细列表,包括允许和拒绝的规则。
sudo firewall-cmd --list-all

3、允许数据库端口:如果发现防火墙规则中没有允许数据库端口的规则,可以添加相应的规则:
sudo firewall-cmd --zone=public --add-port=端口号/tcp --permanent

sudo firewall-cmd --reload

4、重新测试连接

上面四个是我检查排查不能远程连接的过程。最后排查出是防火墙没有对3306端口开放,所以添加后,就可以远程连接了。希望对你有帮助!

参考文章:参考文章里面遇到了两个问题,已经在该篇博客文章中解决:

阿里云ECS服务器安装mysql8_阿里云安装mysql8.0_昨日晨曦丶的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++算法:排序之四(计数、基数、桶排序)

C算法:排序 排序之一(插入、冒泡、快速排序) 排序之二(归并、希尔、选择排序) 排序之三(堆排序) 排序之四(计数、基数、桶排序) 文章目录 C算法:排序三、非比…

本地gradle在idea中的配置

因为公司在用的gradle构建项目,由于学安卓时候把gradle搞的四不像,所以重新配置了gradle在此记录一下 文章目录 安装gradel官网下载解压init.d里面创建init.gradle文件父目录创建gradleRepository配置环境变量测试是否配置成功 idea配置gradle重新构建项…

深度学习笔记之Seq2seq(二)基于Seq2seq注意力机制的动机

深度学习笔记之Seq2seq——基于Seq2seq注意力机制的动机 引言回顾:基于机器翻译任务的 Seq2seq \text{Seq2seq} Seq2seq网络结构注意力机制的动机循环神经网络作为 Encoder \text{Encoder} Encoder产生 Context \text{Context} Context向量的缺陷注意力机制处理上述…

chatgpt赋能python:Python怎么从列表里随机抽取?

Python怎么从列表里随机抽取? 在编程中,我们常常需要从一个列表里面随机抽取一个元素来进行一些操作,比如说在一个游戏中随机抽取一个怪物来进行战斗。Python提供了一个内置模块——random模块,用于生成随机数。这个模块可以帮助…

(数组) 1207. 独一无二的出现次数 ——【Leetcode每日一题】

❓1207. 独一无二的出现次数 难度:简单 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 示例 1: 输入:arr [1,2,2,1,…

做一个比较有意思的条目选择动画 css

做一个比较有意思的条目选择动画 css 效果 如何实现 原理就是将母元素设置成 relative 然后在四边放四个 absolute 的色块。 初始状态是opacity 为 0 的&#xff0c;当母元素 hover 的时候&#xff0c;将四个边角色块设置 opacity: 1 并偏移指定量。 html <div class&qu…

English Learning - L3 作业打卡 Lesson5 Day32 2023.6.5 周一

English Learning - L3 作业打卡 Lesson5 Day32 2023.6.5 周一 引言&#x1f349;句1: What do you read when you are travelling by train or bus?成分划分弱读爆破语调 &#x1f349;句2: What are other passengers reading?成分划分弱读连读语调 &#x1f349;句3: Perh…

软考A计划-系统架构师-官方考试指定教程-(15/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

规则引擎--QLExpress:普通表达式的运行

目录 QLExpress普通表达式执行解析并转化为ExpressNode语法解析,得到如下的语法树根据 ExpressNode 树生成指令树执行指令树得到结果InstructionConstData 的指令执行InstructionOperator的指令执行 最后得到结果 再看一个in表达式设置参数的执行 QLExpress github: https://g…

【matlab】matlab算法封装成工具包提供给程序调用

说明&#xff1a; 1、非进程通讯协议&#xff0c;无需在电脑上安装完整版的matlab开发环境。 2、本项目以C#为案例&#xff0c;调用的语言不限&#xff0c;操作流程基本相同。 一、准备工作 1、安装MATLABWebAppServerSetup集成开发环境 2、安装Visual stdio 2017集成开发环…

Openharmony添加编译自己应用

介绍一下Openharmony如何在庞大的编译构建系统中&#xff0c;增添自己想编译的内容。不定期更新~&#x1f438; gn官方文档&#xff1a; https://gn.googlesource.com/gn//main/docs/quick_start.md https://gn.googlesource.com/gn//master/docs/reference.md openharmony官…

Salesforce退出市场后类似的CRM系统有哪些

Salesforce退出中国市场后&#xff0c;对很多使用Salesforce的国内企业来说是一个不小的打击。他们需要寻找与Salesforce功能相当、具有良好口碑的CRM客户管理系统来替代。本文就为大家推荐五款类似Salesforce的CRM系统。 1、Zoho CRM Zoho CRM是一款SaaS云端CRM系统&#xf…

005: vue中el-upload 组件添加token的方法

第005个 查看专栏目录: 按照VUE知识点 ------ 按照element UI知识点 echarts&#xff0c;openlayers&#xff0c;cesium&#xff0c;leaflet&#xff0c;mapbox&#xff0c;d3&#xff0c;canvas 免费交流社区 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏…

谈谈嵌入式开发中签名校验和加解密作用的理解

1、前言 本博文不是讲解可信加签和固件加密的具体原理&#xff0c;而是谈谈实际嵌入式开发中&#xff0c;可信加签和固件加密的应用场景&#xff0c;可以帮助从事嵌入式开发的人员快速理解加签和加密的作用。 2、嵌入式开发中可信加签和固件加密介绍 (1)各家公司都有自己的可信…

操作受限的线性表——栈

本文主要内容&#xff1a;本文主要讲解栈的基本概念、基本操作和栈的顺序、链式实现。 目录 栈一、栈的基本概念1、基本概念2、基本操作 二、栈的顺序存储结构1、顺序栈的实现2、顺序栈的基本运算1&#xff09;初始化2&#xff09;判栈空3&#xff09;进栈4&#xff09;出栈5&a…

【环境配置】C/C++第三方库管理工具vcpkg安装和使用

一&#xff0c;vcpkg简介 vcpkg是微软公司开发的一个开源C包管理工具&#xff0c;它可以很方便的帮助您在 Windows、 Linux 和 MacOS 上下载&#xff0c;编译和安装C 第三方库。它具有自动解决依赖关系的能力&#xff0c;并且支持多种目标架构和平台。提供了超过1500个C库的预…

【Ubuntu系统内核更新与卸载】

【Ubuntu系统内核更新与卸载】 1. 前言2. 内核安装2.1 系统更新2.2 官网下载 3. 内核卸载3.1 需求分析3.2 卸载方法 1. 前言 我们在搭建环境时常常遇到内核版本不匹配的问题&#xff0c;需要我们安装新的内核版本&#xff1b;有时又会遇到在安装软件时报错boot空间已满无法安装…

Python爬取影评并进行情感分析和数据可视化

Python爬取影评并进行情感分析和数据可视化 文章目录 Python爬取影评并进行情感分析和数据可视化一、引言二、使用requestsBeautifulSoup进行影评的爬取1、分析界面元素2、编写代码 三、情感分析1、数据预处理2、情感分析3、数据可视化 一、引言 前几天出了《航海王&#xff1…

N - Cthulhu

第三次题组 [Cloned] - Virtual Judge (vjudge.net) 【题目描述】 一个具有 n 个顶点和 m 条边的无向图。现在&#xff0c;世界上最好的头脑即将确定这张图是否可以被视为克苏鲁。 为了简单起见&#xff0c;让我们假设克苏鲁从空间里看起来就像一个附有触手的球形身体。从形式…

sqlserver存储过程中使用临时表的问题

2023年6月6日08:52:15 因为最近接触的his系统一些存储过程做数据统计&#xff0c;一个存储过程就要使用1-3个临时表&#xff0c;这些存储过程是零几年的写得&#xff0c;和我们这个时代的写的存储过程习惯不太一样&#xff0c;就好奇为什么要使用这么多的临时表 临时表的基本概…