[QST] Bind9+mysql

Bonjour,

Je viens vous demandé un coup de main pour l’installation de bind9 interfacé avec mysql.
J’ai cette erreur lorsque je veux lancer bind:

Voici ce que j’ai fait:

#Telechargement de bind9
wget -P /usr/local/src/ http://ftp.isc.org/isc/bind9/9.8.0/bind-9.8.0.tar.gz
 
# On descent dans le dossier contenant les fichiers
cd /usr/local/src/
 
#*************************** Decompression de Bind9 ********************************#
 
# Decompression de l'archive
tar xzf /usr/local/src/bind*.tar.gz
 
# Supression de l'archive
rm /usr/local/src/bind*.tar.gz


# ajout d'un group et d'un utilisateur pour bind9
groupadd bind9
useradd –g bind9 bind9
 
# Descente dans le repertoire de Bind9
cd /usr/local/src/bind*
 
# Configuration de la compilation
#(on interface bind avec mysql et on lui permet d'utilisé openssl)
./configure --prefix=/usr  --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info--localstatedir=/var  --sysconfdir=/etc/bind --with-openssl=/usr/local/ssl --with-dlz-mysql=/usr/local/mysql

Ici, le configure me donne cette ligne pour l’interfaçage avec mysql:

checking for MySQL DLZ driver... using mysql from /usr/local/mysql/lib and /usr/local/mysql/include

Donc je vous donne un ls de /usr/local/mysql/lib

libmysqlclient.a    libmysqlclient_r.so     libmysqlclient_r.so.18.0.0  libmysqlclient.so.18      libmysqld.a        libmysqlservices.a      plugin
libmysqlclient_r.a  libmysqlclient_r.so.18  libmysqlclient.so           libmysqlclient.so.18.0.0  libmysqld-debug.a  libtcmalloc_minimal.so

On voit donc que j’ai bien le fichier libmysqlclient.so.18 qui est annoncé dans l’erreur

Suite a ceci, je crée un fichier /etc/bind/named.conf

dlz "Mysql zone" {   database "mysql
   {host=localhost dbname=bind9 user=bind pass=Mot_de_passe ssl=false}
   {select zone from dns_records where zone = '$zone$'}
   {select ttl, type, mx_priority, case when lower(type)='txt' then concat('\"', data, '\"')
        when lower(type) = 'soa' then concat_ws(' ', data, resp_person, serial, refresh, retry, expire, minimum)
        else data end from dns_records where zone = '$zone$' and host = '$record$'}";
};

Puis je créer tout ce qu’il faut sur mysql:

CREATE USER 'bind'@'localhost' IDENTIFIED BY  '***';
GRANT USAGE ON * . * TO  'bind'@'localhost' IDENTIFIED BY  '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;   CREATE DATABASE IF NOT EXISTS  `bind9` ;   GRANT ALL PRIVILEGES ON  `bind9`.* TO  'bind'@'localhost';
use bind9;
 
CREATE TABLE IF NOT EXISTS `dns_records` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `zone` varchar(64) DEFAULT NULL,
  `host` varchar(64) DEFAULT NULL,
  `type` varchar(8) DEFAULT NULL,
  `data` varchar(64) DEFAULT NULL,
  `ttl` int(11) NOT NULL DEFAULT '3600',
  `mx_priority` int(11) DEFAULT NULL,
  `refresh` int(11) NOT NULL DEFAULT '3600',
  `retry` int(11) NOT NULL DEFAULT '3600',
  `expire` int(11) NOT NULL DEFAULT '86400',
  `minimum` int(11) NOT NULL DEFAULT '3600',
  `serial` bigint(20) NOT NULL DEFAULT '2008082700',
  `resp_person` varchar(64) NOT NULL DEFAULT 'resp.person.email',
  `primary_ns` varchar(64) NOT NULL DEFAULT 'ns1.yourdns.here',
  `data_count` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `host` (`host`),
  KEY `zone` (`zone`),
  KEY `type` (`type`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
 
INSERT INTO `dns_records` (`id`, `zone`, `host`, `type`, `data`, `ttl`, `mx_priority`, `refresh`, `retry`, `expire`, `minimum`, `serial`, `resp_person`, `primary_ns`, `data_count`) VALUES
(1, 'test.cat.io', 'www', 'A', '1.2.3.4', 3600, NULL, 3600, 3600, 86400, 3600, 2008082700, 'resp.person.email', 'ns1.yourdns.here', 0),
(2, 'test.cat.io', 'patate', 'A', '245.241.2.1', 3600, NULL, 3600, 3600, 86400, 3600, 2008082700, 'resp.person.email', 'ns1.yourdns.here', 0),
(3, 'test.cat.io', '@', 'A', '1.2.3.4', 3600, NULL, 3600, 3600, 86400, 3600, 2008082700, 'resp.person.email', 'ns1.yourdns.here', 0),
(4, 'test.cat.io', 'www2', 'CNAME', 'www.domain.com.', 3600, NULL, 3600, 3600, 86400, 3600, 2008082700, 'resp.person.email', 'ns1.yourdns.here', 0),
(5, 'test.cat.io', '@', 'MX', 'domain.com.', 3600, 0, 3600, 3600, 86400, 3600, 2008082700, 'resp.person.email', 'ns1.yourdns.here', 0);

Et enfin j’utilise ce script dans /etc/init.d/bind9

[code]#!/bin/bash

case “$1” in
start)
echo -n $"Starting $prog: "
/usr/local/sbin/named -u bind9 && success || failure
echo
;;
stop)
echo -n $"Stopping $prog: "
killproc /usr/local/sbin/named
echo
;;
restart)
$0 stop
sleep 1
$0 start
;;

    status)
            pidof named
            ;;
    *)
            echo "Usage: $0 {start|stop|restart|status}"
            exit 1
            ;;

esac

[/code]

Et lorsque j’effectue le lancement de bind 9

/etc/init.d/bind9 start /usr/local/sbin/named: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

Donc, je ne comprend pas le probleme. Pourquoi bind n’arrive pas a charger libmysqlclient.so.18 ?
Avez vous une idée pour ce probleme ? ai je oublié quelque chose ?

Je vous remercie d’avance pour votre aide :wink:

Personne ne peut m’aider ?
Personne n’as d’idée ?

Salut,

Il cherche
/usr/local/sbin/named/libmysqlclient.so.18

Toi tu as
/usr/local/mysql/lib/libmysqlclient.so.18

Je te suggère de faire un lien symbolique de /usr/local/sbin/named/libmysqlclient.so.18 vers /usr/local/mysql/lib/libmysqlclient.so.18

bon, vue que named n’est pas un dossier, j’ai fait ceci comme lien:

quand j’essaie de relancer, le probleme reste le même …

[quote=“hannibal”]bon, vue que named n’est pas un dossier, j’ai fait ceci comme lien:

quand j’essaie de relancer, le probleme reste le même …[/quote]

Il faut créer le dossier.

je ne peux pas creer le fichier:

root@slwms:/usr/local/sbin# ls -al
total 66504
drwxrwsr-x  2 root staff    4096 14 avril 15:43 .
drwxrwsr-x 13 root staff    4096  7 avril 15:37 ..
-rwxr-xr-x  1 root staff    8246 11 avril 18:17 arpaname
-rwxr-xr-x  1 root staff 2422441 11 avril 18:17 ddns-confgen
-rwxr-xr-x  1 root staff 5197122 11 avril 18:17 dnssec-dsfromkey
-rwxr-xr-x  1 root staff 5192209 11 avril 18:17 dnssec-keyfromlabel
-rwxr-xr-x  1 root staff 5203483 11 avril 18:17 dnssec-keygen
-rwxr-xr-x  1 root staff 5183381 11 avril 18:17 dnssec-revoke
-rwxr-xr-x  1 root staff 5192692 11 avril 18:17 dnssec-settime
-rwxr-xr-x  1 root staff 5297536 11 avril 18:17 dnssec-signzone
-rwxr-xr-x  1 root staff   28975 11 avril 18:17 genrandom
-rwxr-xr-x  1 root staff  242814 11 avril 18:17 isc-hmac-fixup
-rwxr-xr-x  2 root staff 7194560 11 avril 18:17 lwresd
-rwxr-xr-x  2 root staff 7194560 11 avril 18:17 named
-rwxr-xr-x  1 root staff 5441181 11 avril 18:17 named-checkconf
-rwxr-xr-x  1 root staff 5204068 11 avril 18:17 named-checkzone
lrwxrwxrwx  1 root staff      15 11 avril 18:17 named-compilezone -> named-checkzone
-rwxr-xr-x  1 root staff 5157479 11 avril 18:17 named-journalprint
-rwxr-xr-x  1 root staff  387780 11 avril 18:17 nsec3hash
-rwxr-xr-x  1 root staff  923877 11 avril 18:17 rndc
-rwxr-xr-x  1 root staff 2422928 11 avril 18:17 rndc-confgen


root@slwms:/usr/local/sbin#file named
named: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
root@slwms:/usr/local/sbin# mkdir named
mkdir: impossible de créer le répertoire « named »: Le fichier existe

Je vois.
Je t’ai emmené sur une piste à la con, pardon…

Tu as vraiment besoin de compiler bind9 ? La version 9.8.0 est indispensable ?
Sinon, préfère celle des dépôts (9.7.3 pour squeeze), tu ne devrais pas avoir de problèmes de librairies.

Ce n’est pas grave.

Le problème est que je ne sais pas comment faire pour utilisé bind avec mysql via les depots…

Et l’intérêt de la compilation est de me permettre d’utilisé openSSL et MySQL :wink:

C’est pour cela que j’utilise la compilation depuis les sources.
Tu as une autre idée ?

Re,
Mes compétences s’arrêtent là… Jamais fait.
J’ai un peu cherché et les papiers parlent tous de compilation…

Peut-être faire un deb avec les sources téléchargées:

./configure make checkinstall make instal

Ça te créera un paquet à installer, ce sera (peut-être) plus respectueux de la structure Debian, et plus facile à désinstaller en tout cas…

je ne connais pas:

Pourrai tu l’expliqué cette commande ?

C’est tout simple, au lieu d’installer les sources sur le système, ça compile un fichier .deb
A installer ensuite avec:

Ok, je ferai donc mon configure comme je faisais avant, je fais le deb et enfin je test sa demain et je te tiens au jus :wink:

Bon, sa ne résous pas le problème…
Vous avez une autre idée ?

Re,
Dommage…

J’en reviens à mon idée de lien, mais cette fois-ci avec /usr/lib
Named ne prend pas en compte /usr/local/mysql/lib il cherche dans /usr/lib

Je peut testé sa dans une petite demi heure :wink:

Par contre, j’ai rencontré le même probleme lors d’un make install de postfix …
Comme quoi, le problème ne touche pas que bind

Re,

make install pour postfix ?

apt-get install ne te conviens pas ? Ou c’est à cause d’une fonction non disponible dans le paquet Debian ?

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/
Yeah, sa fonctionne avec le lien en /usr/lib (en tout cas sa démarre :smiley: , une idée pour testé que bind fonctionne bien (qu’il va bien cherché dans la BDD?) )

Non, le problème est que je dois scripter une installation non interactive d’un serveur web/mail.
Donc a part si vous avez une idée pour rendre non interactive l’installation par paquet, je n’ai pas d’autre choix.

Aussi pourrai ton me fournir le /etc/inid.t/bind d’origine ? car moi la j’ai été obligé de créer un script, qui a mon sens n’est pas super …

Cool, bonne nouvelle.
Mon idée d’hier n’était pas si stupide, mais je n’avais pas trop réfléchi au dossier (toi non plus en passant… :mrgreen: ).

Pour l’installation non interactive, peut-être en reconfigurant tout d’abord debconf pour que les questions de priorité soient basses…

# dpkg-reconfigure debconf

N’oublie pas la coche verte!

ba je debute dans l’installation de soft par compilation (et en administrateur serveur en passant) donc, j’ai un peut de difficulté :smiley:

Je vais regardé ton histoire de debconf :wink:

Encore merci pour ton aide :smiley: