一、阿里云RDS介绍

什么是阿里云数据库RDS

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

数据库引擎

支持MySQL、SQL Server、PostgreSQL、PPAS、MariaDB五种数据库引擎,下面我们通过MySQL来介绍它。
MySQL是全球最受欢迎的开源数据库,作为开源软件组合LAMP(Linux + Apache + MySQL + Perl/PHP/Python)中的重要一环,广泛应用于各类应用。Web 2.0时代,风靡全网的社区论坛软件系统Discuz!和博客平台WordPress均基于MySQL实现底层架构。Web 3.0时代,阿里巴巴、Facebook、Google等大型互联网公司都采用更为灵活的MySQL构建了成熟的大规模数据库集群。阿里云数据库RDS MySQL基于阿里巴巴的MySQL源码分支,经过双11高并发、大数据量的考验,拥有优良的性能和吞吐量。此外,阿里云数据库MySQL版还拥有经过优化的读写分离、数据库独享代理、智能调优等高级功能。当前RDS MySQL支持5.5、5.6、5.7和8.0版本。

二、RDS for MySQL实战

产品购买及基础配置

1.在阿里云官网创建账户并购买一个RDS实例

2.配置白名单
白名单相当于是配置外界可以访问该数据库的ip地址,购买后默认是只有127.0.0.1,在这里相当于什么ip都不允许通过,可以根据需求配置自己的ip,也可以直接配置0.0.0.0/0表示所有ip都可以访问,但是这样安全性不高。

3.创建账户
创建账户类似于本地数据库账户,之后可以通过用户来访问你的数据库,可以创建高权限账户,也可以创建普通用户,高权限用户默认可以使用任何权限,普通用户你可以为它配置需要的读写权限。

本地远程连接并操作RDS

1.RDS数据库的创建
进入RDS实例的控制台,找到数据库管理,点击创建数据库,也可以在创建时候为数据库配置用户。

2.使用本地数据库工具远程连接
我这里使用的是Navicat工具,主机名填写你在阿里云RDS实例的ip地址,用户名和密码填写你在RDS里创建的账户。

3.数据库CRUD操作
a.创建表

b.新增操作

c.修改操作

d.删除操作

本地数据库向RDS迁移

1.在本地创建一个一个用于数据迁移/同步的账号

2.对刚刚创建的迁移账户进行授权,例如授予账户具备具备所有数据库和表的所有权限,并允许从任意主机登录数据库

3.确认源库的binlog是否开启,如果没有开启,则通过配置文件修改
如下图则是未开启(状态为OFF)

如果是windows则在本地MySQL文件中找my.ini配置文件,开放log-bin注释配置为mysql_bin,顺便将server-id配置为大于1的数字

之后重新启动MySQL的服务,再次查询binlog的状态

4.查询源库的binlog格式是否为ROW模式,如果不是ROW模式,可以使用命令行设置,也可以通过修改ini文件的方式

5.如果版本大于5.6.2 时,需要确认源库的 binlog_row_image=full

6.将数据库迁移至RDS
进入阿里云数据迁移界面,上面填写自己数据库ip地址及刚刚创建的账户和密码,下面填写RDS的信息即可。

选择一个迁移对象,进行迁移

出现如下图则迁移成功

检查自己阿里云RDS中的数据可以看到刚刚迁移的来数据库,到这里数据库迁移工作就全部完成

Java通过JDBC远程操作RDS数据库

在网上下载mysql-connector-java的jar包,放在项目的libs目录下。
代码如下(需要根据自己数据库的表结构更改相应代码):

package com.one;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class TestDemo {private static final String dbdriver = "com.mysql.cj.jdbc.Driver";private static final String dburl = "jdbc:mysql://这里填你的RDS外网地址:3306/dbtest?" +"&useSSL=false&serverTimezone=UTC";private static final String user = "你的用户名";private static final String password = "你的密码";public static void main(String[] args) throws Exception{Class.forName(dbdriver);Connection conn = DriverManager.getConnection(dburl,user,password);Statement stat = conn.createStatement();//数据库增加数据操作
//        String sql = "INSERT INTO user(user_id,user_name,user_age,user_sex) VALUES"
//                + "(4,'啦啦啦','25','女')";
//        int len = stat.executeUpdate(sql);
//
//        System.out.println("影响数据行:" + len);//数据库修改数据操作
//        String sql1 = "UPDATE user SET user_age = '20'"
//                + "WHERE user_name = 'hjr'";
//
//        int len = stat.executeUpdate(sql1);
//
//        System.out.println("影响数据行:" + len);//对数据库的删除操作
//        String sql = "delete from user where user_name = '啦啦啦'";
//
//        int len = stat.executeUpdate(sql);
//
//        System.out.println("影响数据行:" + len);//修改
//        String sql = "update manager set idmanager = 1 where managername = 'pink'";
//        int len = stat.executeUpdate(sql);
//        System.out.println("影响数据行:" + len);//增加
//        String sql = "insert into manager values(2,'hjr','181818')";
//        int len = stat.executeUpdate(sql);
//        System.out.println("影响数据行:" + len);//查询1
//        String sql = "select * from manager";
//        ResultSet rs = stat.executeQuery(sql);
//
//        while(rs.next()){
//            System.out.println(rs.getString(1) + " "
//            + rs.getString(2) + " " + rs.getString(3));
//        }//查询2String sql = "select * from user";ResultSet rs = stat.executeQuery(sql);System.out.println("RDS数据库user表信息如下:");while(rs.next()){int id = rs.getInt("user_id");String name = rs.getString("user_name");String age = rs.getString("user_age");String sex = rs.getString("user_sex");System.out.println(id + " " + name + " " + age + " " + sex);}stat.close();conn.close();}
}

参考文档:阿里云官方文档
本篇博客就介绍到这里,如果发现错误或者有任何疑问请及时提出

使用RDS for MySQL数据库(本地连接、数据库迁移、JDBC操作)相关推荐

  1. Navicat for Mysql建立本地连接出现 1044或1045的问题并如何解决。

    一.解决1045错误问题 在我安装mysql的过程中,mysql已经安装成功,可是在建立数据库链接是报错:Navicat for Mysql建立本地连接出现 1045 -Access denied f ...

  2. mysql 1130本地连接_mysql ERROR 1130 问题解决方案

    本地出现Error 1130问题解决方案 当连接mysql数据库的时候,出现ERROR 1130 (HY000): Host 'xxxx' is not allowed to connect to t ...

  3. 连接不了虚拟机mysql服务器,本地连接虚拟机MySQL提示is not allowed to connect

    本文将解决本地Navicat连接远程MysqL服务器提示不允许连接. 一.问题还原 本地Navicat连接centos7.3虚拟机的MysqL数据库 确认连接后会报出一个这样的错误 二.发现问题 这个 ...

  4. 思软系统无法与服务器数据库建立连接,思软软件操作常见问题.doc

    8.26 前台操作失误,导致某技师优轮次数大于实际轮班次数.(优轮指的是客户有要求长相好的技师或者其他要求,有些技师会优先安排) 解决方法:房态图----其他操作-----技师论过处理.(注:坐标式排 ...

  5. java web之数据库的连接(使用JDBC连接sql server)

    一.安装JDBC驱动程序 二.加载驱动程序并建立连接对象 1.sql server的连接代码: 2.关于这里的用户名和密码 3.解决在用sa登录时可能出现的问题 三.建立数据库 四.在servlet中 ...

  6. java web之数据库的连接(使用JDBC连接sql server 2017)

    一.安装JDBC驱动程序 二.加载驱动程序并建立连接对象 1.sql server的连接代码: 2.关于这里的用户名和密码 3.解决在用sa登录时可能出现的问题 三.建立数据库 四.在servlet中 ...

  7. mysql无法本地连接,本地连接腾讯云Mysql失败问题

    腾讯云主机中MySQL无法远程连接的解决办法 在远程主机上,我开启了 mysql服务,用 phpmyadmin 可以打开,比如说用户名为 root,密码为 123456.不过用 Mysql 客户端远程 ...

  8. mysql 迁移 nosql_小米从关系型数据库Mysql到Nosql HBase的迁移实践操作

    2013年11月22-23日,作为国内唯一专注于Hadoop技术与应用分享的大规模行业盛会,2013 Hadoop中国技术峰会(China Hadoop Summit 2013)于北京福朋喜来登集团酒 ...

  9. EF Core 小技巧:迁移已经应用到数据库,如何进行迁移回退操作?

    场景描述:项目中存在两个迁移 Teacher 和 TeachingPlan ,TeachingPlan 在 Teacher 之后创建,并且已经执行 dotnet ef database update  ...

  10. 本地链接 云数据库mysql_云数据库本地连接

    开发好一个Django项目后,最终项目和数据库都要迁移到服务器上,但服务器上新建的数据库是没有数据的, 此时我们可以在Navicat工具中将本地数据库中的数据导入到服务器端的数据库中,但是当团队合作开 ...

最新文章

  1. 互联网各大公司职级和薪资一览
  2. java删除有序数组中的重复元素_java去除已排序数组中的重复元素
  3. vue-lazyload 的vue 懒加载的使用
  4. C++——类访问修饰符
  5. OpenCASCADE绘制测试线束:使用自定义命令扩展测试工具
  6. python网络运维案例代码库_OLDboy-python第八期运维教程
  7. SQLlite数据导入到mySQL_如何批量导入数据到Sqlite数据库
  8. 3d打印 开源_公开地图以实现可持续性,在农场进行3D打印以及更多开源新闻
  9. 性能测试工具一之ab(一)
  10. .dSYM文件的生成
  11. 不吹不黑聊聊前端框架--尤雨溪Live整理
  12. yarn的安装和使用
  13. 游戏建模教程:肌肉建模丨人体比例及肌肉骨骼介绍
  14. 浏览器打开就是360导航(浏览器被360劫持)
  15. java人员的宝贝:百宝箱。
  16. java openssl rsa_Java中使用OpenSSL生成的RSA公私钥进行数据加解密
  17. 爬虫第六式:链家房源爬取
  18. java排列和组合算法
  19. 电路分析 基尔霍夫定律 详解课堂笔记
  20. 04、Netty学习笔记—(黏包半包及协议设计解析)

热门文章

  1. X86_64 GNU汇编、寄存器、内嵌汇编
  2. yapi 接口管理平台手册
  3. 专访邓中亮:位置信息是大数据的基石
  4. Android 详细讲解修改app状态栏颜色
  5. html使元素不被内容撑开,flex布局被子元素撑开,如何保持内容不超出容器
  6. 十一届蓝桥杯省赛C语言B组——B: 既约分数
  7. bde oracle 商友的流程_BDE动态连接Oracle数据库
  8. iOS 开发中的争议(二)--唐巧
  9. c语言错误中numeric,LC_NUMERIC
  10. 浅谈CPU 硬盘 内存关系