@[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++、Python、Java、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 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!