Maison  >  Article  >  Opération et maintenance  >  Comment installer ODBC sur Linux pour se connecter à la base de données SQLServer

Comment installer ODBC sur Linux pour se connecter à la base de données SQLServer

PHPz
PHPzavant
2023-05-16 12:19:111493parcourir

Système d'exploitation : Centos7.2

1. Téléchargez le package d'installation ODBC

unixODBC-2.3.9.tar.gz

freetds-1.3.9.tar.gz

2. Mettez les deux packages d'installation sur le serveur

Étape 2 : Installez unixODBC, installez-le d'abord, puis installez freetds

Remarque : Si l'ordre d'installation est incohérent ici, le fichier du pilote libtdsodbc.so ne sera pas généré (très important)

2.1, Le système d'exploitation installe d'abord gcc:

yum install gcc

2.2, installe odbc

tar -xvf unixODBC-2.3.9.tar.gz
cd unixODBC-2.3.9
./configure --prefix=/usr/local/unixODBC
make
make install

2.3, installe freetds

tar -xvf freetds-1.3.9.tar.gz
cd freetds-1.3.9
./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC/
make
make install

2.4, configure le pilote freetds

Répertoire du fichier de configuration : /usr/local/freetds/etc/freetds .conf, à la fin du fichier Ajoutez le contenu suivant, la version tds fait référence à la configuration par défaut, la valeur par défaut est 7.3, modifiez simplement l'hôte et le port à l'adresse SQLServer normale

[SQLServer]
    host = serverip
    port = 1433
    tds version = 7.3

2.5, testez si la configuration est correcte

/usr/local/freetds/bin/tsql -S SQLServer -U nom d'utilisateur pour se connecter à SQLServer (-S spécifie le nom du service TDS configuré, -U spécifie le nom d'utilisateur pour se connecter à la base de données). la configuration du pilote est correcte. Si une erreur de connexion se produit, c'est probablement parce que le paramètre de version tds est incorrect. Vous pouvez essayer de modifier la valeur et de vous reconnecter

/usr/local/freetds/bin/tsql -S SQLServer -U sa
Password: 
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>

2.6. Configurer unixODBC

Indiquez l'emplacement du pilote de base de données et les informations d'authentification requises pour vous connecter. à la base de données pour unixodbc. Modifiez les valeurs spécifiques dans les informations de configuration suivantes en fonction de la situation réelle et configurez le pilote

[FreeTDS]                                         #驱动名称
Description=FreeTDS Driver
Driver=/usr/local/freetds/lib/libtdsodbc.so     #驱动位置

/usr/local/unixODBC/etc/odbc.ini dans /usr/local/unixODBC/etc/odbcinst.ini

[mssql]  #DSN名称
Description=sqlserver connection
Driver=FreeTDS    #上面配置好的驱动名称
TDS_Version=7.3   #TDS驱动版本
TRACE=On    #是否输出日志信息
TraceFile=stderr  #日志信息的位置
Server=serverip  #数据库网络地址
Port=1433       #数据库端口
User=name       #登录用户名
Password=pwd     #密码
Database=db name  #连接的数据库名称

2.7 , Testez si la base de données peut être connectée

/usr/local/unixODBC/bin/isql mssql name pwd
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> select * from sys.objects
+---------------------------------------------------------------------------------------------------------------------------------+------------+-------------+------------+-----------------+-----+-------------------------------------------------------------+------------------------+------------------------+--------------+-------------+--------------------+
| name                                                                                                                            | object_id  | principal_id| schema_id  | parent_object_id| type| type_desc                                                   | create_date            | modify_date            | is_ms_shipped| is_published| is_schema_published|

Remarque : puisque nous avons déjà configuré le nom de la base de données de connexion dans le fichier de configuration, n'incluez pas le nom de la base de données lors de l'interrogation SQL, sinon une erreur sera signalée.

2.8. Script Shell pour se connecter à la base de données

SQL="/usr/local/unixODBC/bin/isql mssql sa 123"
i_sql=" exec dbo.bulkinsert 10,20,'dbo.stu';    "
echo $i_sql
result=`echo $i_sql|$SQL`

Méthode 2 :

SQL="select * from Student"
EMPLOYEES=`isql mssql sa 123 <<EOF
   $SQL
   go
   EOF

Méthode 3 :

echo "$SQL" > $TMP/sql.$$
EMPLOYEES=`isql mssql sa 123 -i $TMP/sql.$$`
rm $TMP/sql.$$

2.9. Appelez la commande pour exécuter la procédure stockée sur la machine sur laquelle SQL Server est installé

osql.exe -S ip -U sa -P 123 -d WAI -Q "exec dbo.bulkinsert %start%,%end%,stu
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer