Sybase安装问题记录

Sybase安装问题记录

安装参考博客:windows/Linux下安装Sybase ASE 16/15.7-CSDN博客。亲测可用,这里需要注意里面配置备份服务端时有个Allow Hosts的选项,建议填入all

问题一:配置服务端报错:本地主机名非法

报错内容:

'datacheck1' is an invalid TCP hostname

解决方式:

可以先尝试在命令行中ping一下这个主机名称,我这里是ping不通,所以试着在/etc/hosts文件中加入了域名解析,之后成功解决。

(填入你的虚拟机ip地址) + datacheck1(改成你的主机名)

问题二:Sybase一直卡着不动了,啥情况

只要不报错,一直等着就完事了,我这里也是等了将近一小时才安装完毕

问题三:连接Sybase服务端失败

报错内容:

ct_connect():protocol specific layer:external error:The attempt to connect to the server failed

解决方式:

先查看下服务端连接有没有:

showserver

检查下登录的命令,命令格式:

isql -U sa -P 密码 -H (你的ip地址) -S (服务端的名称)

也可以杀掉Sybase的服务端,然后重启

kill (sybase服务端端口号)
startserver RUN%(Sybase启动文件,通常在/opt/sybase/ASK.../install/里面)

实在不行,删掉目录,重装,保证每一步的步骤不出错,我是重装了

问题四:isql命令连接数据库报错:字符集使用错误

[sybase@sybase sybase]$ isql -U sa -P 123456 -S sybase -J utf8


The context allocation routine failed when it tried to load localization files!!
One or more following problems may caused the failure

Your sybase home directory is /opt/sybase. Check the environment variable SYBASE if it is not the one you want!
Using locale name "zh_CN.UTF-8" defined in environment variable LANG
Locale name "zh_CN.UTF-8" doesn't exist in your /opt/sybase/locales/locales.dat file
An error occurred when attempting to allocate localization-related structures.

解决方案:

su - sybase
vi ~/.bash_profile
# 添加
export LANG=C
source ~/.bash_profile

Sybase安装驱动和配置源步骤及问题记录

下载驱动管理器

yum install unixODBC.x86_64

下载相关的包,解决pyodbc无法使用的问题:

https://github.com/mkleehammer/pyodbc/wiki/Install#installing-on-linux

sudo yum install epel-release
sudo yum install python3-pip gcc-c++ python3-devel unixODBC-devel
pip3 install --user pyodbc

安装好unixODBC驱动管理器后在控制台执行:

(venv) [root@datacheck1 opt]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

查看相关目录的位置

配置ASE驱动

查看DataAccess/ODBC/samples/readme.txt文件,里面记录了如何配置odbc驱动的步骤。

这里主要记录几个关键点:

64位机ASE驱动位于DataAccess64/ODBC/lib/libsybdrvodb.so处,在修改driver路径时填这个文件的位置。

修改完配置文件后执行以下命令

odbcinst -i -d -f drivertemplate.txt

这样ASE驱动就会成功启动,可以在/etc/odbcinst.ini文件里查看

配置ASE数据源

修改完配置文件后执行以下命令

odbcinst -i -s -f sampletemplate.txt

数据源会加载到/root/.odbc.ini文件处

执行连接脚本

这里的SERVER替换为自己的主机地址。

import pyodbc
    
#  参考http://bbs.csdn.net/topics/380063945。
conn = pyodbc.connect(
'DRIVER={Adaptive Server Enterprise};SERVER=DATACHECK1;PORT=5001;DATABASE=testdb;UID=sa;PWD=123456')
print("连接成功")
cursor = conn.cursor()
cursor.execute()
cursor.close()
conn.close()
import pyodbc
    
#  参考http://bbs.csdn.net/topics/380063945。
conn = pyodbc.connect(
'DRIVER={Adaptive Server Enterprise};SERVER=192.168.198.170;PORT=5000;DATABASE=master;UID=sa;PWD=123456')
print("连接成功")
cursor = conn.cursor()
cursor.execute()
cursor.close()
conn.close()
import pyodbc
    
#  参考http://bbs.csdn.net/topics/380063945。
conn = pyodbc.connect(
'DRIVER={Adaptive Server Enterprise};SERVER=localhost;PORT=5000;DATABASE=master;UID=sa;PWD=123456')
print("连接成功")
cursor = conn.cursor()
cursor.execute()
cursor.close()
conn.close()
posted @ 2024-08-19 19:03  零の守墓人  阅读(59)  评论(0编辑  收藏  举报