BIND DLZ PostgreSQL_wdt3385的博客-CSDN博客


本站和网页 https://blog.csdn.net/liangyuannao/article/details/41076507 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

BIND DLZ PostgreSQL_wdt3385的博客-CSDN博客
BIND DLZ PostgreSQL
wdt3385
于 2014-11-13 11:44:40 发布
1345
收藏
分类专栏:
BIND
BIND
专栏收录该内容
17 篇文章
0 订阅
订阅专栏
智能DNS工作原理:
在用户解析一个域名的时候,判断一下用户的IP,然后跟DNS服务器内部的IP表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址。目前的域名服务运营商不提供智能DNS服务,所以必须自行架设DNS服务或者使用网上免费的智能DNS服务,如DNSPOD
本实例中我架设的是一个简单的内外解析模式,如果需要增加其他类别(电信、网通)只需添加对于的 view 即可。
bind 在很早以前就已经集成了bind-dlz 数据库模块,可支持sqllit、bdb Mysql  PostgreSQL ODBC LDAP等数据源,详见:http://bind-dlz.sourceforge.net/
本次架设采用PostgreSQL作为数据源实现,数据库已经准备完毕(可使用已有的数据库系统,创建一个新库即可)。
1、配置说明
两个view
       local   内部网络
       any     其他(公网)
两台DNS服务器
       master dns 10.0.0.8    222.222.222.8
       slave  dns  10.0.0.9     222.222.222.9
2、创建数据库、表并添加基本记录记录
create database dns_dlz;  
create table dns_records(  
    zone character varying(256),  
    host character varying(256) NOT NULL default '@',     
    ttl integer,  
    view character varying(256),  
    type  character varying(256),  
    mx_priority integer,  
    data character varying(256),  
    resp_person character varying(256),  
    serial integer,  
    refresh integer,  
    retry  integer,  
    expire   integer,  
    minimum integer  
);  
  
create INDEX dns_records_host_index on dns_records (host);  
create INDEX dns_records_type_index on dns_records ("type");    
create INDEX dns_records_zone_index on dns_records ("zone");   
# zone sample.com
#soa 记录  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', '@', 600, 'LOCAL', 'SOA', NULL, 'sample.com.', 'root.sample.com.', 2011083001, 28800, 14400, 86400, 86400);  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', '@', 600, 'ANY', 'SOA', NULL, 'sample.com.', 'root.sample.com.', 2011083001, 28800, 14400, 86400, 86400);  
#dns 记录  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', '@', 600, 'LOCAL', 'NS', NULL, 'ns1.sample.com.', NULL, 2011083001, 28800, 14400, 86400, 86400);  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', '@', 600, 'ANY', 'NS', NULL, 'ns1.sample.com.', NULL, 2011083001, 28800, 14400, 86400, 86400);  
#A记录 time.sample.com  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', 'time', 600, 'LOCAL', 'A', NULL, '10.0.0.8', NULL, 2011083001, 28800, 14400, 86400, 86400);  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', 'time', 600, 'ANY', 'A', NULL, '222.222.222.8', NULL,  2011083001, 28800, 14400, 86400, 86400);  
#A记录 ns1.sample.com  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', 'ns1', 600, 'LOCAL', 'A', NULL, '10.0.0.10',  NULL, NULL, NULL, NULL, NULL, NULL);  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', 'ns1', 600, 'ANY', 'A', NULL, '222.222.222.10', NULL,  NULL, NULL, NULL, NULL, NULL);  
#mx记录   
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', '@', 600, 'LOCAL', 'MX', 10, 'mail.sample.com.', NULL, NULL, NULL, NULL, NULL, NULL);  
insert into dns_records(zone, host, ttl, view, type, mx_priority, data, resp_person, serial, refresh, retry, expire, minimum) values ('sample.com', '@', 600, 'ANY', 'MX', 10, 'mail.sample.com.', NULL,  NULL, NULL, NULL, NULL, NULL);  
其他域名的添加方式类似,将zone项替换为对于的域名即可
3、bind 编译安装及配置
rpm包默认不支持dlz模式,需要使用源码编译
./configure --with-dlz-postgres --enable-threads  --prefix=/usr/local/bind  
./configure --with-dlz-postgres  --build=x86_64-RedHat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --with-libtool --localstatedir=/var --enable-threads --enable-ipv6 --with-pic --disable-openssl-version-check   
以下安装路径为系统默认路径 
配置文件 /etc/named.conf  
其他配置文件路径 /etc/named/
4、创建相关配置文件
cd /etc  
rndc-confgen >rndc.conf  
tail -n6 rndc.conf | head -n5 | sed -e s/#\//g >named.conf  
rm -f rndc.conf  (该文件与 rndc.key 文件一起出现会出现 rndc警告,删除为妙)  
dig > named/named.root  
查看是否存在 /etc/rndc.key 文件,如果没有就生成一个
rndc-confgen -a -c rndc.key
默认的rndc.key 文件中的key名称 好像是 rndckey
手动生成的key名称是 rndc-key
key的名称一定要一致,否则会出现不能使用 rndc 刷新、不能同步的问题。
使用 dnssec-keygen 生成view TSIG key
dnssec-keygen -a hmac-md5 -b 128 -n HOST local  
dnssec-keygen -a hmac-md5 -b 128 -n HOST any  
将生成的key 填入named.conf 对应的位置 
如: 
key "any" {  
        algorithm hmac-md5;  
        secret "0bUZSQ1p3OMbX/6nGB6YPQ==";  
};  
详细见下面的完整配置文件,该配置文件包含文件存储和数据库两种方式(数据库存储已经注视掉),文件存储方式已经包含master slave 之间的TSIG 方式同步。
及在不同的view中使用各自key进行同步。
完整 named.conf 内容
options  
{  
        directory       "/var/named";  
        dump-file       "data/cache_dump.db";  
        statistics-file "data/named_stats.log";  
        memstatistics-file "data/named_mem_stats.log";  
        #listen-on port 53 { 127.0.0.1; 10.0.0.8; 222.222.222.8; };  
        allow-recursion { 127.0.0.1; };  
        allow-transfer  { dns_ip; };     #使用文件存储zone时使用 slave 无需此项  
        also-notify     { 10.0.1.9; };   #使用文件存储zone时使用 slave 无需此项  
  
        edns-udp-size   512;  
};  
include "/etc/rndc.key";  
controls {  
        inet 127.0.0.1 port 953  
                allow { 127.0.0.1; } keys { "rndckey"; };  
};  
key "any" {  
        algorithm hmac-md5;  
        secret "0bUZSQ1p3OMbX/6nGB6YPQ==";  
};  
key "local" {  
        algorithm hmac-md5;  
        secret "OuhPGr+uFmSeOm04ZPJFmA==";  
};  
  
acl "dns_ip" {  
        10.0.0.8; #master  
        10.0.0.9; #slave  
};  
  
  
acl "LOCAL" {  
        10.0.0.0/8;  
};  
  
include "/etc/named/local_acl.conf";  
include "/etc/named/any.conf";  
  
logging {    
        category edns-disabled { null; };  
        channel query_log {    
                file "/var/named/data/query.log"        versions 3 size 20m;    
                severity                info;    
                print-time              yes;    
                print-category  yes;    
        };    
        category queries {    
                query_log;    
        };  
};
local_acl.conf
#local network view  
view "local" {  
 match-clients         { key local; LOCAL; }; #使用文件存储zone使用,用于master slave同步  
 #match-clients        { LOCAL; };            #使用数据库时的配置,无需同步  
 allow-query-cache     { LOCAL; };  
 allow-transfer        { key local; };        #使用文件存储zone使用,用于master slave同步  
 server 10.0.0.9       { keys { local; }; };  #使用文件存储zone使用,用于master slave同步  
  
 #允许内部ip地址递归查询  
 allow-recursion {  
    10.0.0.0/16;  
    127.0.0.1;  
 };  
  
#------使用文件存储zone 配置-----------  
 zone "sample.com" {  
    type master;               #slave 配置  type slave;  
    file "/etc/named/sample.com.in.zone"  
    # masters { 10.0.0.8; };   #slave 配置  
 };  
 zone "1.0.10.in-addr.arpa" {  
    type master;               #slave 配置  type slave;  
    file "/etc/named/0.0.10.in-addr.arpa;  
    # masters { 10.0.0.8; };   #slave 配置  
 };  
#------使用文件存储zone 配置-----------  
  
#---dlz postgresql database configure----  
# dlz "postgres zone" {  
#   database "postgres 1  
#   {host=10.0.1.19 port=54320 dbname=dns_dlz user=dns_query}  
#   {select zone from dns_records where zone = '$zone$' limit 1}  
#   {select ttl, type, mx_priority, case when lower(type)='txt' then '\"' || data || '\"'   
#           when lower(type)='soa' then data || ' ' || resp_person || ' ' || serial || ' ' || refresh || ' ' || retry || ' ' || expire || ' ' || minimum   
#           else data end from dns_records where zone = '$zone$' and lower(view)='local' and host = '$record$'}  
#   {}  
#   {select ttl, type, host, mx_priority, case when lower(type)='txt' then '\"' || data || '\"' else data end,  
#     resp_person, serial, refresh, retry, expire, minimum from dns_records where zone = '$zone$'}";   
#  };  
#---dlz postgresql database configure---- };  
};  
any.conf
view "any" {  
  
 match-clients           { key local; ANY; };  #使用文件存储zone使用,用于master slave同步  
#match-clients           { ANY; };             #使用数据库时的配置,无需同步  
 allow-query-cache       { ANY; };  
 allow-transfer          { key any; };         #使用文件存储zone使用,用于master slave同步  
 server 10.0.0.9         { keys { any; }; };   #使用文件存储zone使用,用于master slave同步  
 allow-recursion {  
    127.0.0.1;  
    222.222.222.0/24;  
};  
  
#------使用文件存储zone 配置-----------   
zone "sample.com" {   
    type master;  
    file "/etc/named/sample.com.zone";   
    # masters { 10.0.0.8; };   #slave 配置   
};   
  
zone "222.222.222.in-addr.arpa" {  
    type master;               #slave 配置  type slave;      
    file "/etc/named/222.222.222.in-addr.arpa";      
    # masters { 10.0.0.8; };   #slave 配置   
};  
  
#------使用文件存储zone 配置-----------  
#---dlz postgresql database configure----  
#   dlz "postgres zone" {  
#   database "postgres 1  
#   {host=10.0.1.1 port=5432 dbname=dns_dlz user=dns_query}  
#   {select zone from dns_records where zone = '$zone$' limit 1}  
#   {select ttl, type, mx_priority, case when lower(type)='txt' then '\"' || data || '\"'   
#        when lower(type)='soa' then data || ' ' || resp_person || ' ' || serial || ' ' || refresh || ' ' || retry || ' ' || expire || ' ' || minimum   
#    else data end from dns_records where zone = '$zone$' and lower(view)='any' and host = '$record$'}";   
# };  
#---dlz postgresql database configure----  
};  
以上基本配置已经完成,以上分别使用文件或者数据库存储dns记录的均测试完成
个人建议:在dns记录不多的情况下,使用文件存储的方式可能更为合理一些,毕竟使用数据库又增加了一个故障的可能性。
当使用数据库时,可能会因为插入的记录的问题导致named进程的异常退出,所以应该使用程序来完成记录的添加和修改,尽量避免直接操作数据库。
附:测试命令
rndc reload                  #重新加载全部配置
rndc reload  sample.com  IN  view_name  #重新加载指定的域名下指定的View
rndc status                  #检查服务状态
dig @10.0.0.8 www.sample.com  +noauthority +noadditional | grep -Ev "^(;|$)"     #域名解析测试
 #测试基本dns lookup 及兼容性测试
dig +nodnssec +norec +ignore ns . @L.ROOT-SERVERS.NET  
dig +nodnssec +norec +ignore ns . @L.ROOT-SERVERS.NET
dig +dnssec +norec +ignore ns . @L.ROOT-SERVERS.NET
dig +dnssec +norec +ignore any . @L.ROOT-SERVERS.NET
dig +dnssec +norec +vc any . @L.ROOT-SERVERS.NET
dig +norec +dnssec +ignore dnskey se @A.NS.se
5、配置 named-chroot
配置 named-chroot 使named运行在 chroot模式下,
安装 bind97-chroot rpm包
yum -y install bind97-chroot
该包用来创建 chroot下的目录结构及修改named 启动参数 /etc/sysconfig/named
ROOTDIR=/var/named/chroot #自动添加
OPTIONS="-4"         #该参数指定named工作在IPv4模式,在服务器没有IPv6时最好加上该参数,否则日志里有很多连接到一些IPv6域名服务器的错误信息。
其实这个rpm包就是在 /var/named/chroot 目录下面创建named所需的目录,并修改 /etc/sysconfig/named 加上ROOTDIR启动参数
这个工作应该是可以手工完成的。
使用chroot方式时,/var/named/chroot 目录下的文件自动和 系统中的对应文件和文件夹保持同步
由于我对chroot还不是太了解,其中的原理尚不清楚。
检查chroot方式是否启动的方法:
        检查方法基本上就是查看named进程及其调用文件目录是否已经却换到 /var/named/chroot 下
命令:  lsof -p `pgrep named`
6、配置过程中可能出现的错误:
Aug 30 15:24:15 server135 named[2486]: dns_rdata_fromtext: buffer-0x446c1340:1: near eof: unexpected end of input
Aug 30 15:24:15 server135 named[2486]: dns_sdlz_putrr returned error. Error code was: unexpected end of input
上面的错误就是数据库记录中某些字段的不完整导致的
例如:SOA记录中的 resp_person 字段为空
使用rndc reload 重新加载zone时,出现下面的警告(使用文件存储时)
WARNING: key file (/etc/rndc.key) exists, but using default configuration file (/etc/rndc.conf) rndc: get config key list: not found
解决方法:删除 rndc.conf 文件,在named.conf 中include  ”rndc.key" 文件,并确认key的名称的一致。
日志错误
Sep  1 10:14:38 server135 named[9849]: error (network unreachable) resolving '146.46.208.203.in-addr.arpa/PTR/IN': 2001:dc0:4001:1:0:1836:0:140#53
Sep  1 10:14:38 server135 named[9849]: error (network unreachable) resolving 'dns1.telstra.net/A/IN': 2001:dc0:2001:a:4608::59#53
该错误是因为bind尝试使用IPv6连接导致的错误提示,如果bind服务器没有IPv6地址,在启动参数中禁用IPv6即可。
即在  /etc/sysconfig/named  中加上 OPTIONS="-4" 启动选项。
master log中的错误日志
Aug 31 19:03:58 server135 named[8271]: client 10.0.0.9#39084: view local: zone transfer 'sample.com/IXFR/IN' denied
Aug 31 19:03:58 server135 named[8271]: client 10.0.0.9#43464: view local: zone transfer 'sample.com/AXFR/IN' denied
该问题是在master、slave同步过程中出现的,导致同步失败。
该问题的原因是name.conf 中的定义的key在master slave中不相同,或者key的名称不同,请详细检查,确保使用相同的key名称和值
我的配置就是因为rndc key的名称不同导致的。
http://blog.163.com/digoal@126/blog/static/163877040201110235657127/
wdt3385
关注
关注
点赞
收藏
评论
BIND DLZ PostgreSQL
智能DNS工作原理:在用户解析一个域名的时候,判断一下用户的IP,然后跟DNS服务器内部的IP表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址。目前的域名服务运营商不提供智能DNS服务,所以必须自行架设DNS服务或者使用网上免费的智能DNS服务,如DNSPOD本实例中我架设的是一个简单的内外解析模式,如果需要增加其他类别(电信、网通)只需添加对于的
复制链接
扫一扫
专栏目录
bind+dlz实现智能DNS
03-12
bind+dlz实现智能DNS
PostgreSQL高可用集群
最新发布
weixin_43582048的博客
04-24
3470
笔记在幕布上此链接直接转到
如有疑惑,可以留言。
参与评论
您还未登录,请先
登录
后发表或查看评论
BIND DLZ MySQL
weixin_33698043的博客
10-28
38
BIND MySQL 存储解析数据
转载于:https://blog.51cto.com/heyiyi/700072
PostgreSQL 查询涉及分区表过多导致的性能问题 - 性能诊断与优化(大量BIND, spin lock, SLEEP进程)...
weixin_34416754的博客
01-27
582
标签
PostgreSQL , 分区表 , bind , spin lock , 性能分析 , sleep 进程 , CPU空转 , cache
背景
实际上我写过很多文档,关于分区表的优化:
《PostgreSQL 商用版本EPAS(阿里云ppas) - 分区表性能优化 (堪比pg_pathman)》
《PostgreSQL 传统 hash 分区方...
bind智能DNS + bindUI管理系统(postgresql + bind dlz)
weixin_30820151的博客
05-14
975
# 软件环境:
* Centos 7.6
* bind-9.14.1.tar.gz
*postgresql 11
* python 3.7
* django 2.2.1
QPS:单节点1590 qps
# 目前测试性能最高的方案
* bind-9.12.4/bind-9.12.1、postgresql 11、Centos 7.6,4核心8G的ESXi虚拟机,开4线程,单...
Hue配置LDAP身份认证(Direct bind方式)
mnasd的博客
12-10
3939
Hue的身份认证方式
通过LDAP进行身份认证的方式
Search bind
Direct bind
配置LDAP(Direct Bind with Username Pattern: DN string)
准备工作
修改hue.ini
也可以界面化操作
连接hive/impala
验证
重启Hue
可能出现的问题
[LDAP: error code 49 - Invali...
PostgreSQL bind <unnamed>: slow SQL case record 查询慢
wan_xie2009的专栏
05-31
1204
最近某库经常有SQL非常慢。经过检查都是走索引的SQL,直接在PSQL执行时是正常的速度。
SQL如下:
parameters: $1 = '127385207'
duration: 20709.311 ms bind : SELECT skyid, currency_id, currency_amt, currency_amt as currency_amt2
一次BIND DLZ服务器的调优
David Cao的专栏
03-13
2056
公司需要建立个非传统的DNS服务器,目前的数据已经1000W+,如果业务发展OK,后续可能会爆炸式增长。
采用的是BIND DLZ+MYSQL,因为是第一次安装此类型服务器,所有配置都是按照网上教程配置,
为host建立了索引,同时还建立了分区存储,按理说1000W+的数据查询应该很快,在数据库中直接查询也是非常快。但是测试DNS返回一般要3S以致更多。
跑到官网http://bin
利用bind9架设智能DNS——postgreSQL数据库篇
My life
09-01
2882
智能DNS工作原理:
在用户解析一个域名的时候,判断一下用户的IP,然后跟DNS服务器内部的IP表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址。目前的域名服务运营商不提供智能DNS服务,所以必须自行架设DNS服务或者使用网上免费的智能DNS
with dlz mysql 条件_bind+dlz+mysql实现区域记录动态更新
weixin_36322704的博客
02-22
48
BIND-DLZ实验:http://bind-dlz.sourceforge.net/实验环境:RHEL4,BIND-9.5.0-P2.tar.gz(9.4.0以上版本都已含DLZ补丁),Mysql-5.0.56.tar.gz1、安装mysql(先安装gcc等相关软件包)#tar zxvf mysql-5.0.56.tar.gz#cd mysql-5.0.56#./configure --pref...
利用Bind DLZ MySQL 构建智能DNS
天涯专栏
02-26
2602
本文来自: IT运维专家网 作者: NetSeek 日期: 2009-3-8 19:52 阅读: 742 人 打印 收藏 DNS, Bind, DLZ, 智能, MySQL 作者:NetSeek http://www.linuxtone.org 日期:2009-3-7 gmail:cnseek@gmail.com 推荐下载PDF版(方便查阅):http://www.lin
bind dlz - 分布式系统的请求分发工具
rikee19810706的专栏
12-11
811
导读:   bind dlz全称是bind dynamic loadable zones,是基于bind的提供的一个组件,作用看名字就知道了,支持动态域加载支持。   bind已经有很久的历史,目前是搭建DNS服务器的首选。对于一般网站来说,一个标准的bind已经完全可以完成所有dns解决的工作,但在海量域名数量的情况下,bind也确实存在着一些问题:   1、域名解析信息全部存储在文本文件中,这
linux安装bind with DLZ <NIOT>
weixin_33798152的博客
03-20
89
2015年6月11日
1、sudo wget ftp://ftp.isc.org/isc/bind9/9.10.1/bind-9.10.1.tar.gz 或者 使用“rz”命令
2、tar -zxvf bind-9.10.1.tar.gz
3、创建目录
在/home/wkubuntu下创建named目录和namedfile目录
4、编译安装
cd bind-9.10.1
...
Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
weixin_34071713的博客
04-09
107
使用文本配置文件的配置方式结合bind的最新的acl和view特性来实现智能DNS想必很多人已经很熟悉了,使用MySQL数据库来存放zone文件的方式可能也不少。对于两者都熟悉的,实现 Bind+DLZ+MySQL正向解析的也已经很多了,但实现反向解析的恐怕是没有几个人去做。原因:一是不怎么需要反向解析,而是即使需要也不知道如何配置。
其实反向解析还是需要的,比如说邮件系统或者防火墙系统会判断电...
DNS BIND DLZ实现智能DNS
任何技能都是从模仿开始,逐步升华。
04-23
6547
DLZ不是一个dns服务器,只是bind9的一个补丁,为简化了管理,减少了内存的使用和启动时间。使用DLZ可以将ZONE文件数据库数据存储在数据库,当数据库变化时,可以及时通知bind,并更新数据,不需要重启或重新加载配置。DLZ支持数据库 PostgreSQL, MySQL, Berkeley DB, ODBC (thus Firebird, DB2, Oracle, Sybase, SAPDB) and LDAP,它也可以使用一个标准的文件系统作为数据库,如果现有的驱动不满足,也支持API实现自定义驱动
Linux学习之CentOS(三十四)--配置域主DNS服务器
weixin_34346099的博客
06-06
120
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。
如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦
如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 501395377@qq.com / lzp501395377@gmail.com
如果需要转载,请注明出处,谢谢!...
bind blz mysql_bind+dlz+mysql实现区域记录动态更新
weixin_29007243的博客
01-26
144
BIND-DLZ实验:http://bind-dlz.sourceforge.net/实验环境:RHEL4,BIND-9.5.0-P2.tar.gz(9.4.0以上版本都已含DLZ补丁),Mysql-5.0.56.tar.gz1、安装mysql(先安装gcc等相关软件包)#tar zxvf mysql-5.0.56.tar.gz #cd mysql-5.0.56 #./configure...
postgresql 赋值注意
weixin_34007906的博客
07-09
2878
postgresql 赋值注意
在函数里面赋值需要注意以下
定义变量是在begin前
变量赋值时使用 :=
select 中赋值使用into
如下:
create or replace...
return i int
declare
value int;
begin
value:=100;
select id into value from tabl...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
wdt3385
CSDN认证博客专家
CSDN认证企业博客
码龄16年
暂无认证
79
原创
7万+
周排名
37万+
总排名
190万+
访问
等级
2万+
积分
253
粉丝
96
获赞
61
评论
474
收藏
私信
关注
热门文章
【已解决】python中字符串的最后一个字符是斜杠会导致出错:SyntaxError: EOL while scanning string literal
100808
用c语言生成六位的随机密码。
21276
django QuerySet对象转换成字典对象
18452
pyOpenssl简介
13200
python resource 模块
13104
分类专栏
Linux
285篇
线程
4篇
C++
8篇
调试工具
3篇
网络编程
36篇
编译
46篇
编码
11篇
VC
28篇
CAPI
20篇
C/C++
8篇
网络通信
18篇
WINDOWS
21篇
API
4篇
Socket
24篇
界面库
1篇
调试
2篇
cygwin
2篇
openssl
24篇
PKI
2篇
证书
15篇
SSL
15篇
C语言
80篇
进程
26篇
vim
1篇
内核
1篇
bkwin
16篇
金山开源
18篇
Lua
4篇
BOLT
15篇
CSP
6篇
MFC
2篇
Oracle
1篇
SHELL
8篇
Install Shield
37篇
xml
5篇
开源
2篇
PKCS#11
4篇
工具
8篇
服务
5篇
脚本
4篇
USB
1篇
mysql
67篇
开发
3篇
ubuntu
2篇
apache
5篇
网络Intenet
3篇
知识
6篇
web
3篇
CGI
3篇
报文
3篇
ESQL
10篇
java
1篇
云计算
2篇
php
2篇
ftp
1篇
javascript
6篇
jqplot
4篇
SQLite
6篇
测试
9篇
OPEN
OPENDPI
5篇
iptables
10篇
ModSecurity
1篇
LVS
51篇
集群
34篇
HA
11篇
Nginx
31篇
TUN
1篇
keepalived
31篇
Piranha
3篇
负载均衡
22篇
ADC
5篇
shttpd
1篇
mongoose
13篇
HTTP
2篇
Django
37篇
HAproxy
1篇
zeroshell
2篇
DNS
4篇
route
5篇
BIND
17篇
平时工作
easyUI
4篇
RRD
18篇
SNMP
1篇
正则表达式
3篇
源码解析
22篇
matplotlib
12篇
highchats
管理
1篇
QT
46篇
Eric4
4篇
性能
4篇
代码走查
1篇
WAF
1篇
邮件
1篇
ARP
2篇
ACM
5篇
网络
log
logstash
3篇
防篡改
1篇
PyRTF
1篇
Tengine
1篇
IP地址库
6篇
防盗链
1篇
Mongodb
1篇
敏捷
最新评论
网络抓包终结迅雷!
兴奋的倔黄牛:
你图呢?
SSL_read 返回值为0困惑
bingshanzhu:
判断SSL_pending()是否仍有数据可接收
SSL_read 返回值为0困惑
bingshanzhu:
SSL_read 需要读取一个完整的记录才能解密,num为0是要求它去读一个0字节缓存,也会返回0,可以通过判断规避此种情况
在主程序及动态链接库里的全局变量
Mr_lei先森:
您好,再windows下会有这个问题吗?需要加链接命令解决吗
python resource 模块
lmw0320:
那咋整。。win下想安装这个模块,怎么解决??
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
各阶段工作量(工期)比例关系
敏捷开发学习笔记:需求优先级方法(需求做还是不做)
8天学通MongoDB——第一天 基础入门
2018年2篇
2015年3篇
2014年32篇
2013年550篇
2012年691篇
目录
目录
分类专栏
Linux
285篇
线程
4篇
C++
8篇
调试工具
3篇
网络编程
36篇
编译
46篇
编码
11篇
VC
28篇
CAPI
20篇
C/C++
8篇
网络通信
18篇
WINDOWS
21篇
API
4篇
Socket
24篇
界面库
1篇
调试
2篇
cygwin
2篇
openssl
24篇
PKI
2篇
证书
15篇
SSL
15篇
C语言
80篇
进程
26篇
vim
1篇
内核
1篇
bkwin
16篇
金山开源
18篇
Lua
4篇
BOLT
15篇
CSP
6篇
MFC
2篇
Oracle
1篇
SHELL
8篇
Install Shield
37篇
xml
5篇
开源
2篇
PKCS#11
4篇
工具
8篇
服务
5篇
脚本
4篇
USB
1篇
mysql
67篇
开发
3篇
ubuntu
2篇
apache
5篇
网络Intenet
3篇
知识
6篇
web
3篇
CGI
3篇
报文
3篇
ESQL
10篇
java
1篇
云计算
2篇
php
2篇
ftp
1篇
javascript
6篇
jqplot
4篇
SQLite
6篇
测试
9篇
OPEN
OPENDPI
5篇
iptables
10篇
ModSecurity
1篇
LVS
51篇
集群
34篇
HA
11篇
Nginx
31篇
TUN
1篇
keepalived
31篇
Piranha
3篇
负载均衡
22篇
ADC
5篇
shttpd
1篇
mongoose
13篇
HTTP
2篇
Django
37篇
HAproxy
1篇
zeroshell
2篇
DNS
4篇
route
5篇
BIND
17篇
平时工作
easyUI
4篇
RRD
18篇
SNMP
1篇
正则表达式
3篇
源码解析
22篇
matplotlib
12篇
highchats
管理
1篇
QT
46篇
Eric4
4篇
性能
4篇
代码走查
1篇
WAF
1篇
邮件
1篇
ARP
2篇
ACM
5篇
网络
log
logstash
3篇
防篡改
1篇
PyRTF
1篇
Tengine
1篇
IP地址库
6篇
防盗链
1篇
Mongodb
1篇
敏捷
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值