首页 > 数据库 >coredns mysql 扩展使用+readyset 试用

coredns mysql 扩展使用+readyset 试用

时间:2023-01-23 19:22:07浏览次数:54  
标签:readyset -- mysql org coredns foo

基于db 进行dns 记录的管理还是比较有用的,尤其在一些开发环境中,以下是一个使用
同时也会尝试集成readyset(但是木有成功,应该是mysql 编码兼容的问题)

添加&构建插件

方法比较简单,官方有比较完整的文档说明,主要就是修改plugin.cfg 文件,同时通过go get 获取插件,然后就是
go generate 以及 go build,为了方便我构建了一个容器镜像,可以直接使用dalongrong/coredns

环境准备

  • docker-compose 文件
 
version: '3'
services:
  coredns:
    image: dalongrong/coredns
    command: -conf=/opt/Corefile
    volumes:
      - ./Corefile:/opt/Corefile
    ports:
      - 53:53
      - 53:53/udp
  mysql:
    image: mysql:8.0.32
    command: --default-authentication-plugin=mysql_native_password --log-bin --binlog-format=ROW --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      - MYSQL_ROOT_PASSWORD=dalong
      - MYSQL_DATABASE=coredns
    ports:
      - 3306:3306
  # 包含了readyset 但是目前似乎是兼容问题没成功
  readyset:
    image: public.ecr.aws/readyset/readyset:beta-2023-01-18
    command: --standalone --deployment=quickstart-mysql --database-type=mysql -upstream-db-url=mysql://root:dalong@mysql:3306/coredns --address=0.0.0.0:5433   --password=dalong --query-caching=explicit --db-dir=/state --allow-unauthenticated-connections
    environment:
      - DEPLOYMENT_ENV=quickstart_docker
      - RS_API_KEY
    ports:
      - 5433:5433
    volumes:
      - ./readyset:/state

Corefile 配置文件

.:53 {
   mysql {
    dsn root:dalong@tcp(mysql:3306)/coredns?tls=skip-verify&autocommit=true
    ttl 20
  }
}

运行&准备

  • 启动环境
docker-compose up -d
  • 初始化数据表
CREATE TABLE `coredns_records` (
    `id` INT NOT NULL AUTO_INCREMENT,
  `zone` VARCHAR(255) NOT NULL,
  `name` VARCHAR(255) NOT NULL,
  `ttl` INT DEFAULT NULL,
  `content` TEXT,
  `record_type` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
)
 
INSERT INTO coredns_records (zone, name, ttl, content, record_type) VALUES
('example.org.', 'foo', 30, '{"ip": "1.1.1.1"}', 'A'),
('example.org.', 'foo', '60', '{"ip": "1.1.1.0"}', 'A'),
('example.org.', 'foo', 30, '{"text": "hello"}', 'TXT'),
('example.org.', 'foo', 30, '{"host" : "foo.example.org.","priority" : 10}', 'MX');
  • 查询效果
dig @127.0.0.1 A MX foo.example.org 

 

 

说明

本来是想测试readyset的,但是碰到了兼容问题,基本就是没成功,错误信息如下,应该是编码兼容问题,readyset 的想法是很不错的,目前兼容性问题还是不少的,可能pg 协议会好点,后边尝试下

 

 

参考资料

https://docs.readyset.io/guides/quickstart/
https://github.com/readysettech/readyset
https://github.com/cloud66-oss/coredns_mysql
https://github.com/coredns/coredns
https://coredns.io/2017/07/25/compile-time-enabling-or-disabling-plugins/

标签:readyset,--,mysql,org,coredns,foo
From: https://www.cnblogs.com/rongfengliang/p/17065423.html

相关文章

  • MySQL笔记01: MySQL入门_1.2 MySQL下载安装与配置
     2.2MySQL下载安装与配置 2.2.1MySQL下载  MySQL中文官网:https://www.mysql.com/cn/   MySQL英文官网:https://www.mysql.com/   MySQL官网下载地址:h......
  • 远程连接Docker上的Mysql失败的解决方案
    之前VMWare虚拟机CentOS7使用DHCP,导致只要重启操作系统,网卡IP地址就改变。于是把网卡修改为手工设定IP地址,结果导致远程连接mysql出现如下错误,花了很多时间还没有解决,最终偶......
  • MySQL排序与分页详解
    1.排序数据排序规则使用ORDERBY子句排序ASC(ascend):升序DESC(descend):降序ORDERBY子句在SELECT语句的结尾。单列排序SELECTlast_name,job_id,department_id,hire_d......
  • 数据库:了解MySQL数据类型、SQL命令
    文章目录​​Python进阶篇-系列文章全篇​​​​1.【了解】数据库概念及作用​​​​2.【了解】数据库分类及特点​​​​3.【了解】数据库管理系统​​​​4.【了解】MySQ......
  • MySQL单行函数详解
    ⭐本专栏针对MySQL中的范式、日志、SQL性能分析工具、存储引擎、优化场景、锁的应用、各种创建索引的规则等各方面进行剖析。......
  • MYSQL分页查询时没有用ORDER BY出现数据重复的问题
    背景产品反馈,用户在使用分页列表时,出现数据重复的问题,查看代码后发现对应的分页SQL并没有使用orderby进行排序,但是印象中Mysql的InnoDB引擎会默认按照主键id进行排序,本地......
  • readyset 轻量级pg 以及mysql 缓存引擎
    readyset是基于rust开发的pg以及mysql轻量级缓存服务参考玩法如下图  说明readyset一些设计还是很有意思的,很值得学习,同时也可以在项目中尝试使用参考资料ht......
  • c/c++ mysql api函数
    一、常用APImysql_affected_rows()返回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。mysql_autocommit()切换autocommit模式,ON/OFFmysql_change_user()......
  • 解决Loading class `com.mysql.jdbc.Driver'. This is deprecated.
    IDEA编写的数据库报红字:Loadingclass`com.mysql.jdbc.Driver'.Thisisdeprecated.Thenewdriverclassis`com.mysql.cj.jdbc.Driver'.Thedriverisautomatical......
  • MySQL之视图
    视图什么是视图视图是一张虚表(建立在真实的table的基础之上,即视图的数据来源是对应的table).首先需要创建一张表,在表的基础上,指定的列映射成一个视图.就是一个SEL......