一文搞懂阿里云服务器部署MySQL并整合Spring Boot

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 阿里云服务器部署MySQL并整合Spring Boot,超详细教程~

在这里插入图片描述

@[TOC]

一、什么是MySQL?

百度百科

MySQL是一个 关系型数据库管理系统 ,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的 关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

MySQL是一个关系型数据库!免费开源!

二、MySQL与Redis的区别

⚡数据库类型

MySQL是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢.

Redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限.

⚡数据库作用

MySQL用于持久化的存储数据到硬盘,功能强大,但是速度较

Redis用于存储使用较为频繁的数据到缓存中,读取速度.

⚡数据库需求

MySQL和Redis因为需求的不同,一般都是配合使用

☁️总结

数据库 MySQL Redis
类型 关系型数据库 非关系型数据库
作用 持久化到硬盘,但读写速度慢 将数据存储到缓存中,读取速度快
存放位置 数据存储到硬盘 数据存储到内存

MySQL和Redis结合使用,才会更好的发挥自己独特的性能,从而快速开发高性能,高可用系统!

三、MySQL的好处

  • 使用 C 和 C++ 编写,并使用多种编译器进行测试,保证源代码的可移植性。
  • 支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统。
  • 为多种编程语言提供了 API。这些编程语言包括 C、C++、PythonJava、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • 支持多线程,充分利用 CPU 资源
  • 优化的 SQL 查询算法,有效地提高查询速度
  • 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入其他的软件中。
  • 提供多语言支持,常见的编码如中文的 GB 2312、BIG 5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。
  • 提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。
  • 提供用于管理、检查、优化数据库操作的管理工具。
  • 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • 支持多种存储引擎

非关系型数据库,将数据持久化到数据库,可以保证高可用性!

四、阿里云服务器部署MySQL

♻️安装MySQL8.0

检测服务器是否有MySQL数据库

安装之前,先查看Linux服务器是否有MySQL

rpm -qa | grep mysql

删除软件包

rpm -e --nodeps $(rpm -qa | grep mysql)

可使用rpm -qa | grep mysql再次查看,确保没有软件包

查询MySQL相关文件

find / -name mysql

直接删除文件

rm -rf $(find / -name mysql)

可使用find / -name mysql再次查看是否删除成功~


安装MySQL,首先下载MySQL安装包,这里下载MySQL8.0

进入usr/local新建MySQL目录

cd usr/local

mkdir mysql

以下操作在 mysql目录下操作

下载MySQL

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

也可以去官网直接下载

安装成功后查询下载好的文件

ll

在这里插入图片描述

解压下载好的文件

tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

再次查看文件

在这里插入图片描述

文件太长,我们修改文件名为mysql-8.0

 mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8.0

修改完毕后我们再次查看文件名

在这里插入图片描述

进入 mysql8.0 目录

在这里插入图片描述

新建 data 目录存放核心文件

mkdir data

在这里插入图片描述

添加 mysql 组和用户组密码

groupadd mysql

useradd -g mysql mysql

在这里插入图片描述

修改MySQL文件名

mv mysql8.0 mysql-8.0

在这里插入图片描述

授权用户

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

在这里插入图片描述

回到bin目录初始化信息

cd bin 
# 初始化基础信息
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize

在这里插入图片描述

保存临时密码后面我们测试时要用

编写 MySQL my.cnf 配置文件

vim etc/my.cnf

按下 i 键 写入内容

注意:一开始配置为空,我们将下面配置文件复制到 my.cnf文件中

[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
basedir=/usr/local/mysql/mysql-8.0/
datadir=/usr/local/mysql/mysql-8.0/data/
# 设置字符编码集
character-set-server=utf8
# 日志存放目录
log-err=/usr/local/mysql/mysql-8.0/data/mysqld.log
pid-file=/usr/local/mysql/mysql-8.0/data/mysqld.pid

主要区分 [client][mysqld]

修改完毕后退出并保存

esc # 取消编辑
:wq # 保存并退出

回到mysql-8.0目录,将mysqld添加到服务

cp -a ./support-files/mysql.server /etc/init.d/mysql

授权和添加服务

chmod +x /etc/init.d/mysql

chkconfig --add mysql

在这里插入图片描述


启动MySQL服务
service mysql start

查看 MySQL服务是否启动

service mysql status

在这里插入图片描述

连接MySQL
mysql -uroot -p

Enter Pwd: 刚刚保存的密码,复制到此,回车即可成功

在这里插入图片描述

修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

刷新

flush privileges;

在这里插入图片描述

启动MySQL远程连接并生效
update user set host='%' where user='root';

flush privileges;

MySQL连接成功~

❇️MySQL 建库 建表 及插入测试数据

新建数据库

create database db_demo

使用数据库

use db_demo

新建 employee 员工表

create table t_employee(
    -> id int,
    -> name varchar(32),
    -> sex char(4),
    -> birthday date,
    -> job varchar(64));

在这里插入图片描述

插入测试数据

INSERT INTO t_employee (id, NAME, sex, birthday, job) VALUES('1', '小王', '男', '2022-04-04', '工程师');
INSERT INTO t_employee (id, NAME, sex, birthday, job) VALUES('2', '小李', '男', '2022-03-20', '工程师');

插入数据成功!

五、SQLyog 连接 阿里云服务器MySQL

📜下载SQLyog

打开SQLyog官网

在这里插入图片描述

填写注册免费试用即可

📋获取注册码

如果到期后,可以去淘宝或者官网购买正品,在这里我们拒绝盗版哦~

♻️测试连接远程阿里云服务器MySQL

连接阿里云服务器MySQL

在这里插入图片描述

这里如果连接不上,请关闭 Linux防火墙并在阿里云控制台打开允许访问3306端口

关闭 Linux 防火墙

查看防火墙状态

systemctl status firewalld

关闭防火墙,暂时关闭防火墙

systemctl stop firewalld

再次通过systemctl status firewalld查看防火墙状态

在这里插入图片描述

已关闭防火墙

阿里云服务器允许访问3306端口

实例 --> 安全组,添加安全组访问规则

在这里插入图片描述

再次连接测试

在这里插入图片描述

连接成功~

六、Spring Boot 整合MySQL

✅效果图

在这里插入图片描述

🗂️核心源码

pom.xml依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.20</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

application.yml 配置文件

MySQL8.0 必须配置时区!

datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://您的ip地址:3306/db_demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=true
    username: root
    password: 123456

    type: com.alibaba.druid.pool.DruidDataSource
    initialSize: 2
    minIdle: 2
    maxActive: 120
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validateQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    filters: stat,wall,log4j
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

EmployeeMapper

package com.wanshi.mapper;

import com.wanshi.entity.Employee;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface EmployeeMapper {

    @Insert("insert into t_employee (id, name, sex, birthday, job) values(#{id}, #{name}, #{sex}, #{birthday}, #{job})")
    Integer insert(Employee param);

    @Select("select * from t_employee")
    List<Employee> list();
}

Test测试类

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MainApplication.class)
public class Test1 {

    @Autowired
    private EmployeeMapper employeeMapper;
    @Test
    public void t1() {
        Employee employee = new Employee(3, "小美", "男", new Date(), "测试工程师");
        employeeMapper.insert(employee);
        List<Employee> employeeList = employeeMapper.list();
        employeeList.forEach((emp) -> {
            System.out.println(emp);
        });
    }
}

♨️往期精彩热文回顾

✈️ **[3分钟带你搞懂Vue双向绑定原理及问题剖析
](https://blog.csdn.net/weixin_45526437/article/details/123524699)**
✈️ **[Netty进阶 -- WebSocket长连接开发
](https://blog.csdn.net/weixin_45526437/article/details/123351605?spm=1001.2014.3001.5502)**
✈️ **[Netty进阶 -- 非阻塞网络编程 实现群聊+私聊+心跳检测系统
](https://blog.csdn.net/weixin_45526437/article/details/123197281?spm=1001.2014.3001.5502)**

✈️ **[Postman测试工具调试接口详细教程【向后端发送Json数据并接收返回的Json结果】
](https://blog.csdn.net/weixin_45526437/article/details/121317623)**

✈️ **[Java面向对象 --- 吃货联盟订餐系统(完整版)
](https://blog.csdn.net/weixin_45526437/article/details/114370404)**
✈️ **[一分钟教你快速 搭建Vue脚手架(Vue-Cli)项目并整合ElementUI
](https://blog.csdn.net/weixin_45526437/article/details/123247055?spm=1001.2014.3001.5502)**

⛵小结

以上就是【 Bug 终结者】对 阿里云服务器部署MySQL并整合Spring Boot简单的概述, MySQL是一个关系型数据库,可以 持久化数据到硬盘中,MySQL是企业中比较 常用的数据库,它和 Redis搭配使用,方可展示出更优越的性能,提高系统的 可用性
如果这篇【文章】有帮助到你,希望可以给【 Bug 终结者】点个赞👍,创作不易,如果有对【 后端技术】、【 前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【 Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!
相关文章
|
2月前
|
负载均衡 应用服务中间件 持续交付
微服务架构下的Web服务器部署
【8月更文第28天】随着互联网应用的不断发展,传统的单体应用架构逐渐显露出其局限性,特别是在可扩展性和维护性方面。为了解决这些问题,微服务架构应运而生。微服务架构通过将应用程序分解成一系列小型、独立的服务来提高系统的灵活性和可维护性。本文将探讨如何在微服务架构中有效部署和管理Web服务器实例,并提供一些实际的代码示例。
69 0
|
1月前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
26 2
基于bind软件部署DNS服务器
|
16天前
|
监控 JavaScript Java
部署应用程序到服务器
部署应用程序到服务器
34 3
|
1月前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
146 18
|
1月前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
58 2
|
8天前
|
JavaScript Linux 开发工具
如何将nodejs项目程序部署到阿里云服务器上
该文章详细描述了将Node.js项目部署到阿里云服务器的步骤,包括服务器环境配置、项目上传及使用PM2进行服务管理的过程。
|
16天前
|
Ubuntu 开发工具 git
在Ubuntu上部署BOA服务器的步骤
部署BOA服务器是一个涉及多个步骤的过程,包括系统更新、安装依赖、下载和编译源代码、配置服务器以及启动和验证。遵循上述步骤,可以在Ubuntu系统上成功部署BOA服务器,为开发和测试提供一个轻量级的Web服务器环境。
13 0
|
2月前
|
JavaScript NoSQL 中间件
《Node.js后端修炼手册》——揭秘服务器搭建与部署上线的生死时速,让你一战成名!
【8月更文挑战第27天】本文详细介绍如何从零开始利用Node.js构建后端服务器并部署至生产环境。首先,通过简易步骤搭建基础服务器,包括环境安装与配置。接着,引入Express框架优化路由与中间件管理,提升开发效率。随后,利用Mongoose实现MongoDB数据库连接,增强数据交互能力。为保证系统稳定性,文中还讲解了错误处理机制。最后,通过PM2等工具部署应用至生产环境,确保高效运行。本教程辅以示例代码,帮助读者快速掌握Node.js后端开发全流程。
69 2
|
2月前
|
前端开发 应用服务中间件 nginx
前端服务器部署方式
【8月更文挑战第25天】前端服务器部署方式
44 1
|
2月前
|
UED
JSF文件下载:解锁终极文件传输秘籍,让你的Web应用瞬间高大上!
【8月更文挑战第31天】掌握JSF文件下载功能对构建全面的Web应用至关重要。本文通过具体代码示例,详细介绍如何在JSF中实现文件下载。关键在于后端Bean中的文件读取与响应设置。示例展示了从创建实体类到使用`&lt;h:commandLink&gt;`触发下载的全过程,并通过正确设置响应头和处理文件流,确保文件能被顺利下载。这将显著提升Web应用的实用性与用户体验。
47 0
下一篇
无影云桌面