有人成功的用sqlalchemy连接ipv6地址的达梦数据库了吗?150


鞋垫高挑
鞋垫高挑 2024-04-07 16:10:42 47274
分类专栏:问题 问题分类: 其它未定义问题
系统自动结题
2 个回答
  • 1843880570 进阶 2024-04-07 16:46:48

    检查IPv6是否启用
    关于IPv6启用设置可以在网上搜索方法,网上很多。默认Centos 7启用了IPv6,Windows(win10 win11)也默认启用了IPv6。

    简单查看系统是否启用IPv6:

    Linux7:

    [root@localhost ~]# sysctl -a|grep ipv6|grep disable
    net.ipv6.conf.all.disable_ipv6 = 0
    net.ipv6.conf.default.disable_ipv6 = 0
    net.ipv6.conf.ens32.disable_ipv6 = 0
    ##上面为0,则表示未禁用ipv6(默认)
    [root@localhost ~]# ifconfig
    ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.15.71  netmask 255.255.255.0  broadcast 192.168.15.255
            inet6 fe80::1a2d:8be9:91f6:6b51  prefixlen 64  scopeid 0x20<link>
            inet6 fd15:4ba5:5a2b:1008:9ef5:bef9:de64:c30a  prefixlen 64  scopeid 0x0<global>
            ether 00:0c:29:89:30:0d  txqueuelen 1000  (Ethernet)
            RX packets 796502  bytes 872721471 (832.2 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1028073  bytes 2448756974 (2.2 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    ##上面inet6表示启用了ipv6

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Windows:

    ipconfig [-all] 
    #可以看到显示IPv6地址,则表示启用
    1
    2
    测试机器之间IPv6地址是否能正常通信
    方法:

    假如Linux数据库服务器为A机,Linux客户端机器为B机,Windows客户端机器为C机

    B机 telnet A机:telnet -6 A机ipv6地址%B机使用的网络接口名称 端口号 (Linux-Linux,网络接口名称比如ens32)

    C机 telnet A机:telnet A机ipv6地址%C机对应地址的scopeid 端口号 (Windows-Linux,scopeid为Windows IPv6地址那里显示的"ipv6地址%scopeid"中的scopeid)

    ###关于IPv6这块详细的知识,可以查阅网上相关文章等,此处就简单说明一下

    Linux数据库服务器的IPv6地址为fe80::1a2d:8be9:91f6:6b51 , IPv4地址为:192.168.15.71

    (1)linux之间telnet测试

    客户端机器地址:为fe80::89b7:a6c4:d5cc:d905

     

    telnet测试:

     

    telnet测试IPv6网络正常。

    (2)Windows到Linux之间telnet测试

    Windows客户机器地址:

    以太网适配器 以太网:

       连接特定的 DNS 后缀 . . . . . . . :
       本地链接 IPv6 地址. . . . . . . . : fe80::d5af:10cd:5f2e:4fda%11
       IPv4 地址 . . . . . . . . . . . . : 192.168.0.100
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . : 192.168.0.1

    以太网适配器 VMware Network Adapter VMnet1:

       连接特定的 DNS 后缀 . . . . . . . :
       本地链接 IPv6 地址. . . . . . . . : fe80::4c57:e965:991d:f036%18
       IPv4 地址 . . . . . . . . . . . . : 192.168.25.1
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . :

    以太网适配器 VMware Network Adapter VMnet8:

       连接特定的 DNS 后缀 . . . . . . . :
       IPv6 地址 . . . . . . . . . . . . : fd15:4ba5:5a2b:1008:6170:2d1c:c51d:a1b3
       临时 IPv6 地址. . . . . . . . . . : fd15:4ba5:5a2b:1008:1b9:c6a1:c604:e634
       本地链接 IPv6 地址. . . . . . . . : fe80::6170:2d1c:c51d:a1b3%20                   ###ipv6%scopeid
       IPv4 地址 . . . . . . . . . . . . : 192.168.15.1
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . : fe80::250:56ff:fec0:2222%20

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    本次环境数据库机器是VMware虚拟机,使用的NAT网络即VMnet8,所以采用VMnet8的IPv6地址后面的scopeid进行测试。如下:

     

     

    测试ipv6地址网络正常。

    使用disql进行连接测试
    Linux客户机使用disql连接
    (1)###ipv4
    [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.15.71:5236

    服务器[192.168.15.71:5236]:处于普通打开状态
    登录使用时间 : 31.898(ms)
    disql V8
    SQL> QUIT

    (2)###ipv6
    ####disql连接串host不加网络接口名称,连接失败
    [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51]:5236
    [-70028]:创建SOCKET连接失败.
    disql V8
    用户名:
    密码:
    [-70028]:创建SOCKET连接失败.
    用户名:^C

    ####disql连接串host加上网络接口名称,连接正常
    [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51%ens33]:5236

    服务器[fe80::1a2d:8be9:91f6:6b51%ens33:5236]:处于普通打开状态
    登录使用时间 : 5.810(ms)
    disql V8
    SQL> select * from v$instance;

    行号     NAME     INSTANCE_NAME INSTANCE_NUMBER HOST_NAME            
    ---------- -------- ------------- --------------- ---------------------
               SVR_VERSION                DB_VERSION          START_TIME          STATUS$ MODE$ 
               -------------------------- ------------------- ------------------- ------- ------
               OGUID       DSC_SEQNO   DSC_ROLE
               ----------- ----------- --------
    1          DMSERVER DMSERVER      1               localhost.localdomain
               DM Database Server x64 V8  DB Version: 0x7000c 2021-10-28 11:36:28 OPEN    NORMAL
               0           0           NULL


    已用时间: 32.412(毫秒). 执行号:1500.
    SQL> 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Windows客户机使用disql连接
    ###ipv4 连接成功
    E:\dmdbms270\bin>disql SYSDBA/SYSDBA@192.168.15.71:5236

    服务器[192.168.15.71:5236]:处于普通打开状态
    登录使用时间 : 15.842(ms)
    disql V8
    SQL> QUIT

    ###ipv6 
    ####disql连接串host不加scopeid,连接成功
    E:\dmdbms270\bin>disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51]:5236

    服务器[fe80::1a2d:8be9:91f6:6b51:5236]:处于普通打开状态
    登录使用时间 : 17.334(ms)
    disql V8
    SQL> QUIT
    ####disql连接串host加scopeid,也可连接成功
    E:\dmdbms270\bin>disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51%20]:5236

    服务器[fe80::1a2d:8be9:91f6:6b51%20:5236]:处于普通打开状态
    登录使用时间 : 3.872(ms)
    disql V8
    SQL> quit


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    使用DM管理工具进行连接测试
    Linux客户机使用DM管理工具进行连接

     


    可以发现使用JDBC连接时(DM管理工具使用的是JDBC连接),连接地址那里加或者不加网络接口名称都能连接成功。

    Windows客户机使用DM管理工具进行连接

     


    通过测试发现,同Linux上使用DM管理工具的情况。Windows上加不加对应网卡的scopeid,都可以成功连接到数据库。

    使用dm_svc.conf中服务名方式连接测试
    Linux客户端机器上dm_svc.conf文件配置内容如下:

    TIME_ZONE=(480)
    LANGUAGE=(cn)
    IPV6=([fe80::1a2d:8be9:91f6:6b51]:5236)
    IPV6_2=([fe80::1a2d:8be9:91f6:6b51%ens33]:5236)
    1
    2
    3
    4
    Windows客户端机器上dm_svc.conf文件配置内容如下:

    TIME_ZONE=(480)
    LANGUAGE=(cn)
    IPV6=([fe80::1a2d:8be9:91f6:6b51]:5236)
    IPV6_2=([fe80::1a2d:8be9:91f6:6b51%20]:5236)
    1
    2
    3
    4
    disql测试服务名方式
    Linux客户机:

     

    Windows客户机:

     

    DM管理工具测试
    LInux客户端机器:

     

     

    Windows客户端机器:

     

     

    简单的 JAVA 代码测试
    (1)直接使用IPv6地址连接,操作数据库成功

     

    (2)使用dm_svc.conf中的服务名连接,操作数据库正常

     

    总结
    1、使用JDBC通过IPv6地址进行访问时,只需要在连接串中将IPv6地址使用方括号[] 括起来即可。

    2、Linux机器上使用disql工具采用IPv6地址进行连接时,需要加上%disql客户机对应的网络接口名称(同telnet),如**./disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51%ens33]:5236**,而Windows机器只需要使用方括号[]将IPv6地址括起来即可。

    赞同 0 反对 0

  • prtyaa 新手 2024-04-12 23:49:23

    使用简单介绍
    达梦数据库支持使用IPv6的地址访问数据库。

    与使用IPv4相比,在连接时需要指定相应的格式:

    (1)使用JDBC连接时,若使用ipv6地址,需要用[]指明是ipv6地址,即ipv6的地址需要包含在[]中。

    例如:

      达梦管理工具使用IPV6地址,如ipv6地址为fe80::1a2d:8be9:91f6:6b51,那么主机名那里则为[fe80::1a2d:8be9:91f6:6b51]。

    (2)disql工具使用ipv6地址连接时,本地测试在Linux上与在Windows上存在一点区别。

    主要区别如下:

      Linux上使用disql采用ipv6地址访问,需要使用方括号[]将ipv6地址%disql机器的网络接口名整个包起来,如:ipv6地址为fe80::1a2d:8be9:91f6:6b51,ens33为disql机器对应的网络接口名称,则disql连接串host地址为[fe80::1a2d:8be9:91f6:6b51%ens33]。

      Windows上使用disql采用ipv6地址访问配置和JDBC使用ipv6访问一样,使用方括号[]将ipv6地址包起来即可。

    具体可以参考《DM8程序员手册》《DM8 disql使用手册》等。

    使用演示
    检查IPv6是否启用
    关于IPv6启用设置可以在网上搜索方法,网上很多。默认Centos 7启用了IPv6,Windows(win10 win11)也默认启用了IPv6。

    简单查看系统是否启用IPv6:

    Linux7:

    [root@localhost ~]# sysctl -a|grep ipv6|grep disable
    net.ipv6.conf.all.disable_ipv6 = 0
    net.ipv6.conf.default.disable_ipv6 = 0
    net.ipv6.conf.ens32.disable_ipv6 = 0
    ##上面为0,则表示未禁用ipv6(默认)
    [root@localhost ~]# ifconfig
    ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.15.71  netmask 255.255.255.0  broadcast 192.168.15.255
            inet6 fe80::1a2d:8be9:91f6:6b51  prefixlen 64  scopeid 0x20<link>
            inet6 fd15:4ba5:5a2b:1008:9ef5:bef9:de64:c30a  prefixlen 64  scopeid 0x0<global>
            ether 00:0c:29:89:30:0d  txqueuelen 1000  (Ethernet)
            RX packets 796502  bytes 872721471 (832.2 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1028073  bytes 2448756974 (2.2 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    ##上面inet6表示启用了ipv6

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Windows:

    ipconfig [-all] 
    #可以看到显示IPv6地址,则表示启用
    1
    2
    测试机器之间IPv6地址是否能正常通信
    方法:

    假如Linux数据库服务器为A机,Linux客户端机器为B机,Windows客户端机器为C机

    B机 telnet A机:telnet -6 A机ipv6地址%B机使用的网络接口名称 端口号 (Linux-Linux,网络接口名称比如ens32)

    C机 telnet A机:telnet A机ipv6地址%C机对应地址的scopeid 端口号 (Windows-Linux,scopeid为Windows IPv6地址那里显示的"ipv6地址%scopeid"中的scopeid)

    ###关于IPv6这块详细的知识,可以查阅网上相关文章等,此处就简单说明一下

    Linux数据库服务器的IPv6地址为fe80::1a2d:8be9:91f6:6b51 , IPv4地址为:192.168.15.71

    (1)linux之间telnet测试

    客户端机器地址:为fe80::89b7:a6c4:d5cc:d905

     

    telnet测试:

     

    telnet测试IPv6网络正常。

    (2)Windows到Linux之间telnet测试

    Windows客户机器地址:

    以太网适配器 以太网:

       连接特定的 DNS 后缀 . . . . . . . :
       本地链接 IPv6 地址. . . . . . . . : fe80::d5af:10cd:5f2e:4fda%11
       IPv4 地址 . . . . . . . . . . . . : 192.168.0.100
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . : 192.168.0.1

    以太网适配器 VMware Network Adapter VMnet1:

       连接特定的 DNS 后缀 . . . . . . . :
       本地链接 IPv6 地址. . . . . . . . : fe80::4c57:e965:991d:f036%18
       IPv4 地址 . . . . . . . . . . . . : 192.168.25.1
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . :

    以太网适配器 VMware Network Adapter VMnet8:

       连接特定的 DNS 后缀 . . . . . . . :
       IPv6 地址 . . . . . . . . . . . . : fd15:4ba5:5a2b:1008:6170:2d1c:c51d:a1b3
       临时 IPv6 地址. . . . . . . . . . : fd15:4ba5:5a2b:1008:1b9:c6a1:c604:e634
       本地链接 IPv6 地址. . . . . . . . : fe80::6170:2d1c:c51d:a1b3%20                   ###ipv6%scopeid
       IPv4 地址 . . . . . . . . . . . . : 192.168.15.1
       子网掩码  . . . . . . . . . . . . : 255.255.255.0
       默认网关. . . . . . . . . . . . . : fe80::250:56ff:fec0:2222%20

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    本次环境数据库机器是VMware虚拟机,使用的NAT网络即VMnet8,所以采用VMnet8的IPv6地址后面的scopeid进行测试。如下:

     

     

    测试ipv6地址网络正常。

    使用disql进行连接测试
    Linux客户机使用disql连接
    (1)###ipv4
    [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.15.71:5236

    服务器[192.168.15.71:5236]:处于普通打开状态
    登录使用时间 : 31.898(ms)
    disql V8
    SQL> QUIT

    (2)###ipv6
    ####disql连接串host不加网络接口名称,连接失败
    [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51]:5236
    [-70028]:创建SOCKET连接失败.
    disql V8
    用户名:
    密码:
    [-70028]:创建SOCKET连接失败.
    用户名:^C

    ####disql连接串host加上网络接口名称,连接正常
    [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51%ens33]:5236

    服务器[fe80::1a2d:8be9:91f6:6b51%ens33:5236]:处于普通打开状态
    登录使用时间 : 5.810(ms)
    disql V8
    SQL> select * from v$instance;

    行号     NAME     INSTANCE_NAME INSTANCE_NUMBER HOST_NAME            
    ---------- -------- ------------- --------------- ---------------------
               SVR_VERSION                DB_VERSION          START_TIME          STATUS$ MODE$ 
               -------------------------- ------------------- ------------------- ------- ------
               OGUID       DSC_SEQNO   DSC_ROLE
               ----------- ----------- --------
    1          DMSERVER DMSERVER      1               localhost.localdomain
               DM Database Server x64 V8  DB Version: 0x7000c 2021-10-28 11:36:28 OPEN    NORMAL
               0           0           NULL


    已用时间: 32.412(毫秒). 执行号:1500.
    SQL> 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Windows客户机使用disql连接
    ###ipv4 连接成功
    E:\dmdbms270\bin>disql SYSDBA/SYSDBA@192.168.15.71:5236

    服务器[192.168.15.71:5236]:处于普通打开状态
    登录使用时间 : 15.842(ms)
    disql V8
    SQL> QUIT

    ###ipv6 
    ####disql连接串host不加scopeid,连接成功
    E:\dmdbms270\bin>disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51]:5236

    服务器[fe80::1a2d:8be9:91f6:6b51:5236]:处于普通打开状态
    登录使用时间 : 17.334(ms)
    disql V8
    SQL> QUIT
    ####disql连接串host加scopeid,也可连接成功
    E:\dmdbms270\bin>disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51%20]:5236

    服务器[fe80::1a2d:8be9:91f6:6b51%20:5236]:处于普通打开状态
    登录使用时间 : 3.872(ms)
    disql V8
    SQL> quit


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    使用DM管理工具进行连接测试
    Linux客户机使用DM管理工具进行连接

     


    可以发现使用JDBC连接时(DM管理工具使用的是JDBC连接),连接地址那里加或者不加网络接口名称都能连接成功。

    Windows客户机使用DM管理工具进行连接

     


    通过测试发现,同Linux上使用DM管理工具的情况。Windows上加不加对应网卡的scopeid,都可以成功连接到数据库。

    使用dm_svc.conf中服务名方式连接测试
    Linux客户端机器上dm_svc.conf文件配置内容如下:

    TIME_ZONE=(480)
    LANGUAGE=(cn)
    IPV6=([fe80::1a2d:8be9:91f6:6b51]:5236)
    IPV6_2=([fe80::1a2d:8be9:91f6:6b51%ens33]:5236)
    1
    2
    3
    4
    Windows客户端机器上dm_svc.conf文件配置内容如下:

    TIME_ZONE=(480)
    LANGUAGE=(cn)
    IPV6=([fe80::1a2d:8be9:91f6:6b51]:5236)
    IPV6_2=([fe80::1a2d:8be9:91f6:6b51%20]:5236)
    1
    2
    3
    4
    disql测试服务名方式
    Linux客户机:

     

    Windows客户机:

     

    DM管理工具测试
    LInux客户端机器:

     

     

    Windows客户端机器:

     

     

    简单的 JAVA 代码测试
    (1)直接使用IPv6地址连接,操作数据库成功

     

    (2)使用dm_svc.conf中的服务名连接,操作数据库正常

     

    总结
    1、使用JDBC通过IPv6地址进行访问时,只需要在连接串中将IPv6地址使用方括号[] 括起来即可。

    2、Linux机器上使用disql工具采用IPv6地址进行连接时,需要加上%disql客户机对应的网络接口名称(同telnet),如**./disql SYSDBA/SYSDBA@[fe80::1a2d:8be9:91f6:6b51%ens33]:5236**,而Windows机器只需要使用方括号[]将IPv6地址括起来即可。
    ————————————————

          版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                            
    原文链接:https://blog.csdn.net/Mrkill123/article/details/127459500

    赞同 0 反对 0

    丫哈哈哈哈哈哈哈各个环节
鞋垫高挑新手
粉丝 0 发表 9 + 关注 私信
上周热门
统信系统能生成某一指定文件夹下的所有文件列表吗  2773
统信系统有自己的字幕屏幕保护程序吗  2533
统信软件能支持pandas吗  2456
统信系统如何在保证自己数据安全的基础上,进行数据分析,比如使用pandas进行大数据分析  2445
安全与发展,统信系统是如何在两者之间权衡,满足用户高效办公的要求  2104
统信系统的数据安全机制是什么  1770
统信软件支持python为什么不支持安装pandas  1115
您好,我想问一下,就是这银河麒麟系统,背景黑屏怎么办啊,其他的都正常,就是没有背景,设置里面的背景一点击系统就不响应了怎么解决?  178
我想连接共享打印机可是,搜索驱动时候没有,怎么办  162
uos有支持活体检测的软件吗  150
本周热议
麒麟系统登录输入密码后又需要重新输入密码,确定密码正确。如何处理? 12
求麒麟系统下的Broadcom 802.11n 无线网卡驱动 10
银河麒麟桌面操作系统V10 SP1安装应用时会反复提示安全授权认证,如何才能取消呢? 10
统信UOS系统下安装HP打印机驱动问题 10
银河麒麟系统登录时用户名是中文,如何将输入法切换成中文进行登录? 9
如何在统信系统使用VFP? 9
使用正版软件承诺书每年一签有相关的政策文件吗? 8
银河麒麟系统安装软件需要密码授权,单用户模式修改密码不行,如何解决 8
uos系统怎么装了向日葵,向日葵打不开啊? 7
有偿使用中国长城信创运维工程师(初级)证书 7

加入交流群

请使用微信扫一扫!