初次使用阿里云数据库配置及使用时的问题(详细配置)

前言

不得不说今年618活动还是很给力的,正好小翔准备入手一台测试云数据库。抓住这个机会买了一台学习下这个阿里云云数据库RDS版本,以后有遇到这类情况的时候才敢操作。之前接触较多的还是阿里云ECS服务器或者是轻量服务器,对于云数据库之前还没接触过。

正文

什么是云数据库RDS ?

阿里云关系型数据库(Relational Database Service,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)和MariaDB TX引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

使用阿里云RDS数据库的好处: 无需用户自己考虑高可用、备份恢复等问题,而且阿里针对开源的数据库做了部分优化。另外提供一些诸如监控、告警、备份、恢复、调优的手段。就是减轻用户在业务无关方面的花销,花小钱省下力气聚焦在自己的业务上。

1.安全稳定,数据可靠

安全稳定 RDS集群处于多层防火墙的保护之下,可以有力抗击各种恶意攻击,保证数据的安全。 数据可靠 RDS采用主从热备的集群架构方式,如果主机遭遇宕机,备机30秒内自动完成切换。

2.自动备份,管理透明

自动备份 RDS根据用户自定义的备份策略自动备份 ,防止数据丢失和误删除。 管理透明 您无需维护数据库,只需选择合适的RDS实例,部署简单快速,大大节省您硬件成本和维护成本。 强兼容性 RDS与常用的程序、工具完全兼容。使用通用数据导入导出工具即可迁移到RDS,零迁移成本。

3.性能卓越,灵活扩容

性能卓越 RDS使用高端服务器来保障每个数据库都拥有良好的性能。同时对数据库参数做了特定的优化。相 比 其他同类产品具有很大的性能优势。 灵活扩容 RDS实例从开通到运行只需要几分钟,随着数据量的变化,用户可以弹性升级实例的规格。RDS搭配 云服务器使用,产生的内网或外网流量免费。

使用教程

我们在每年的6.18或者双11活动可以尽量留意一下官方出的活动,一般这个时候都还是很香的,小翔就是活动上买的一台测试云数据库,买了后官方直接自动给我创建好了实例,也省去了后面这些条条框框的选择。

1. 折扣

还没有 阿里云 账号请注册并登录到阿里云控制台,购买之前点我领取阿里云千元代金券,百款产品抵扣 50 元起。

新用户更享有超低价优惠服务,不得不说还是挺香的。

初次使用阿里云数据库配置及使用时的问题(详细配置)插图

2. 创建RDS(Mysql实例)

这里我们选定计费方式、地域、数据库类型及版本、系列以及存储类型。根据我们项目所在地区选择区域,如果我们是需要结合云服务器使用的,建议和云服务器在一个地区。因为小翔这边有一台成都的云服务器,所以我这边就选择成都的云数据库。

官方创建实例教程,可以查看费用,一步一步跟着做也很简单 点我跳转

初次使用阿里云数据库配置及使用时的问题(详细配置)插图1

等我们都选择好了就等待实例创建,然后就可以在云数据库RDS控制台里查看创建好的实例。

初次使用阿里云数据库配置及使用时的问题(详细配置)插图2

相信大家也看见了上图中的新人任务步骤,大家完全可以跟着步骤走就能完成数据库的配置,接下来由小翔带领大家一步一步完善并用navicat连接使用。

3. 进入实例管理

初次使用阿里云数据库配置及使用时的问题(详细配置)插图3

点击实例名称进入实例管理

初次使用阿里云数据库配置及使用时的问题(详细配置)插图4

4. 设置白名单

新创建的实例默认白名单是127.0.0.1代表禁止任何主机连接,所以我们要设置一下我们电脑所在的主机

IP/IPv6查询主机IP 本机ip查询,将查询出来的ip填入到下面白名单内即可

初次使用阿里云数据库配置及使用时的问题(详细配置)插图5

点击右侧修改填入ip

初次使用阿里云数据库配置及使用时的问题(详细配置)插图6

5. 创建账号

阿里允许一个高级权限账号 所以我们来创建一个自己的root高权限账号

初次使用阿里云数据库配置及使用时的问题(详细配置)插图7

因为我这里已经创建了一个高权限账号了,所以我再创建已经选不了了,然后直接点击创建即可

初次使用阿里云数据库配置及使用时的问题(详细配置)插图8

6. 开放外网

因为我们要使用自己的远端电脑连接数据库,所以必须要开启外网

初次使用阿里云数据库配置及使用时的问题(详细配置)插图9

7. 使用Navicat连接数据库

在后面创建数据库及导入数据实验室可能会出现1044等问题,所以我这里直接登录的是最高权限账号

初次使用阿里云数据库配置及使用时的问题(详细配置)插图10

点击测试连接后出现连接成功,说明就可以连接了。

8. ECS服务器(Java项目)和RDS服务器的连接

接下来我们把部署到服务器上的java项目数据库连接改为RDS服务器内网连接

注意事项:

  1. 服务器的地区是否和RDS地区一样,在前面我也说明了我买的都是成都地区的服务器和RDS
  2. 网络类型是否相同(使用专有网络)

具体描述规则参照 阿里云文档解决无法连接RDS实例的问题

修改服务器上的jar包

因为我是用的springBoot打的jar包,没有通过tomcat启动,所以直接在线解压jar包修改配置文件,再从新打包启动

初次使用阿里云数据库配置及使用时的问题(详细配置)插图11

1.执行 jar xvf app.jar 解压jar包

jar xvf app.jar

初次使用阿里云数据库配置及使用时的问题(详细配置)插图12

2. 备份jar包 执行 cp app.jar ../ 这里可以备份到其它目录,我是直接复制到上一个目录

 cp app.jar ../

3. 进入 BOOT-INF/classes

 cd BOOT-INF/classes/

初次使用阿里云数据库配置及使用时的问题(详细配置)插图13

一般没有分配环境的项目直接是在application.yml或者 application.properties 文件里,其实都是一样的

这里我就直接修改 yml 配置文件了 使用 vim 指令

提示没有当前指令时可以安装:

  • ubuntu 系统输入命令:sudo apt-get install vim-gtk
  • centos 系统输入命令:yum -y install vim*

输入指令

 vim application.yml

点击键盘的 i 键进入编辑模式,然后修改数据库的连接,编辑好后保存

初次使用阿里云数据库配置及使用时的问题(详细配置)插图14

4. 确认原来的jar包备份后删除,然后留下解压出来的目录重新打成新的jar包

注意事项:

确认回到之前的目录,别停留在classes文件这里

jar cvfM0 app.jar ./META_INF/MANIFAST.MF ./

初次使用阿里云数据库配置及使用时的问题(详细配置)插图15

执行命令后我们看到又出现了一个新的 app.jar包

初次使用阿里云数据库配置及使用时的问题(详细配置)插图16

5. 重新执行jar包

 nohup java -Duser.timezone=GMT+8 -jar app.jar >> ./catalina.out 2>&1 &

启动后可以看到已经成功连接上了rds内网地址

初次使用阿里云数据库配置及使用时的问题(详细配置)插图17

以上便是阿里云数据库 RDS MySQL 版购买、创建、连接进行管理数据库及ECS服务器项目内网连接RDS服务。

阿里云 RDS MySQL 版给我们提供了这么一个很好的平台,可以保持我们的业务稳定、高速运转。

出现的问题

1. MySQL提示 “Specified key was too long; max key length is 767 bytes”

RDS MySQL在大字段上创建索引时,遇到错误

Error 1071: Specified key was too long; max key length is 767 bytes.

 问题原因

由于MySQL的InnoDB引擎表索引字段长度的限制为767字节,因此对于多字节字符集的大字段或者多字段组合,创建索引时会出现该问题。

注:以utf8mb4字符集字符串类型字段为例。utf8mb4是4字节字符集,默认支持的索引字段最大长度是191字符(767字节/4字节每字符≈191字符),因此在varchar(255)或char(255)类型字段上创建索引会失败。详情请参见MySQL官网文档。

输入指令查看 innodb_large_prefix 的值

 show variables like '%innodb_file_format%';
 ​
 出现结果为 OFF

 我们在RDS控制台找到 参数设置 页面修改 innodb_large_prefix 参数值为 ON,然后单击 提交

初次使用阿里云数据库配置及使用时的问题(详细配置)插图18

2. 导入数据库时报错1067 – Invalid default value for ‘字段名’

我在测试导入wordpress数据时报错,Invalid default value for 'comment_date' 原因出在类似这样的语句

 `comment_date` datetime(0) NOT NULL DEFAULT '0000-00-00 00:00:00',
 `comment_date_gmt` datetime(0) NOT NULL DEFAULT '0000-00-00 00:00:00',

 一般出现这种情况很多是升级版本导致的不兼容问题,可以看看字段类型,这里我遇到的是时间类型,然后就想到查看一下类型的默认值是否被限制了,然后查看 sql_mode

发现 NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数,它们是限制时间不能为0

show variables like 'sql_mode';

得到结果
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 我们在RDS控制台找到 参数设置 页面修改 sql_mode 参数值去掉 NO_ZERO_IN_DATE,NO_ZERO_DATE,然后单击 提交

可以直接复制以下数据修改:

 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

初次使用阿里云数据库配置及使用时的问题(详细配置)插图19

版权声明:
作者:小翔
链接:https://www.weiye.link/279.html
来源:翔基博客
标注了原创的文章版权归作者所有,未经允许请勿转载。
THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录