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**文件处
执行连接脚本
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()