Nous migrons nos scripts python vers des scripts lua dans le cadre de la mise à niveau d'Apache 2.4. Une des exigences est de se connecter à la base de données Sybase et d'exécuter des requêtes. Pour ce faire, nous avons développé un petit code en utilisant mod_lua api pour obtenir une connexion db, mais nous n'avons pas réussi.apache 2.4 - Impossible d'obtenir une connexion à la base de données Sybase en utilisant mod_lua, mod_dbd, freetds
Nous avons installé le apr-util avec freetds.
Pour obtenir la connexion de base de données à l'aide mod_lua, module mod_dbd et freetds - nous avons suivi les étapes mentionnées ici - http://modlua.org/api/database#dbd
Pour configurer les DPDParams pour freetds, nous avons suivi les params mentionnés ici https://httpd.apache.org/docs/2.4/mod/mod_dbd.html#DBDParams
En VirtualHost de httpd.conf, nous avons ajouté les dbdparams suivants
DBDriver FreeTDS
DBDParams username = xxx, password = xxx, host = host-ip: port
DBDMax 10
et le code Lua, juste pour obtenir une connexion de base de données est
require "apache2"
require "string"
function handle(r)
r.content_type = "text/html"
local database, err = r:dbacquire("mod_dbd")
r:err("inside handle method_1 " .. err)
return apache2.OK
end
L'erreur que nous recevons dans le journal des erreurs d'apache est -
[Jeudi 25 août 15: 28: 03.198044 2016] [dbd: error] [pid 21708: tid 139621318366976] (20014) Erreur interne (informations spécifiques non disponibles ): AH00629: Impossible de se connecter à freetds:
[Jeu 25 août 15: 28: 03,198145 2016] [DBD: error] [pid 21708: tid 139621318366976] (20014) erreur interne (informations spécifiques non disponibles): AH00633: pas initialiser
[Jeu 25 août 15: 28: 03,198184 2016] [lua: error] [pid 21708: tid 139621318366976] [ client 10.135.15.148:52836] handle interne method_1 Impossible d'acquérir la connexion à partir de mod_dbd. Si votre base de données est en cours d'exécution, cela peut indiquer un problème d'autorisation.
Nous sommes en mesure de se connecter à la base de données en utilisant tsql du même système, mais la connexion de apache DBD, ne fonctionne pas. Nous suspectons qu'il pourrait y avoir quelques problèmes de configuration (DBDParams) ou que le système d'exploitation peut bloquer la connexion d'apache
Quelqu'un pourrait-il aider à cet égard.
Je n'ai jamais travaillé avec Sybase, mais sachez que vous devez passer TDS_Version = 5.0 pour vous connecter (voir la conversation ici: https://github.com/FreeTDS/freetds/pull/71). Pouvez-vous trouver un moyen de passer la version TDS avec votre 'DBDParams'? Je sais que lors de la connexion à partir de Python ou Perl, j'ai besoin d'inclure le TDS_Version dans la chaîne de connexion. – FlipperPA