Compilation de mysql

Bonjour,

Je rencontre un soucis avec le comilation de MySQL, quel que soit la version,
5.0.27, 5.1.11, ou 5.1.12

L’erreur est toujours la même; lors de l’exécution du ./configure:

debian:/usr/local/mysql-standard-5.0.27-linux-i686# ./configure --prefix=/usr/local/mysql

NOTE: This is a MySQL binary distribution. It's ready to run, you don't
need to configure it!

To help you a bit, I am now going to create the needed MySQL databases
and start the MySQL server for you.  If you run into any trouble, please
consult the MySQL manual, that you can find in the Docs directory.

Installing all prepared tables
Fill help tables

To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h debian password 'new-password'
See the manual for more instructions.

NOTE:  If you are upgrading from a MySQL <= 3.22.10 you should run
the ./bin/mysql_fix_privilege_tables. Otherwise you will not be
able to use the new GRANT command!

You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests

Please report any problems with the ./bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
Starting the mysqld server.  You can test that it is up and running
with the command:
./bin/mysqladmin version
debian:/usr/local/mysql-standard-5.0.27-linux-i686# Starting mysqld daemon with databases from /usr/local/mysql-standard-5.0.27-linux-i686/data
STOPPING server from pid file /usr/local/mysql-standard-5.0.27-linux-i686/data/debian.pid
061125 15:19:02  mysqld ended

Merci d’avance pour votre aide
Nicolas

:question: :question: :question: :question: :question:

C’est d’une clarté limpide:

[quote]This is a MySQL binary distribution. It’s ready to run, you don’t
need to configure it![/quote]

En clair tu n’as pas besoin de compiler, tu as un paquet binaire! pas un paquet source.

bonsoir,
je sais pas trop, mais j’ai quelques remarques … :

  • pourquoi le configurer avec un préfixe, ça t’obligera à d’autre manip par la suite, vu que sous debian, une bonne partie de mysql doit se trouver par défaut dans /etc
  • moi j’ai plutôt l’impression que le script te l’a lancé, puisqu’il te donne le pid, puis il le stoppe … tu as essayé de le relancer par /etc/init.d/mysql restart en root ?
  • enfin, pourquoi tu le recompiles ? quel est ton interêt ?

t’es sur fran.b ? comment il pourrait se trouver dans ce repertoire /usr/local/mysql-standard-5.0.27-linux-i686 si c’est un binaire ?

Merci pour vos réponses,

Je vous avouerais que je suis un peu perdu.
Je vois pas trop la différence entre binaire et source.

Quel est mon besoin ? Simplement que de compiler me permet de spécifier ce dont j’ai besoin, et cela m’est nécessaire, car je dois reproduire une config déjà existante.

Donc si il ne faut pas le compiler, comment installer et configurer MySQL dans ce cas ?

Merci de votre aide
Nicolas

En ayant chargé un paquet de binaires et non de sources. Pour un truc de la taille de mysql, c’est évident qu’il privilégie la distribution par binaire. Sinon, oui le message me parait clair.

que veux tu spécifier ?
Quand on spécifie quelquechose à la compil, on le fait au moment du ./configure. Or, specifier le prefixe comme tu l’as fait n’est qu’une précaution, pas une fin en soi pour configurer quoi que ce soit.
Quelles sont tes contraintes ?
Sois plus précis: tu reprends une config, mais tu veux quoi ?

Qui plus est, les sources ne sont pas dédiés à une architecture (i686 ici). Je penses qu’il veut un MySQL récent.

nicocolt: je te suggère de faire un tour sur le truc et astuces pour voir les posts sur la façon d’installer des paquets récents sur une debian quelle qu’elle soit.

Merci encore de votre aide.

Mon problème, c’est que je compile Apache PHP et MySQL, Lorsque je compile une partie et que je prends le reste sous forme de paquets .deb, je rencontre des soucis entre la liaison des composants.

De plus je dois reproduire une configuration déjà existante, la seule différence, c’est la prise en charge des fonctions OCI pour Oracle au niveau de la compilation de PHP

Jusque là j’ai compilé sans soucis, le seul problème c’est au niveau de MySQL. Il semblerait donc que je ne dispose pas des bons fichiers sources. Dans ce cas, où puis-je trouver une version de MySQL, récente, que je puisse compiler ?

Merci encore pour votre aide
Nicolas

deux possibilités:
tu peux prendre les paquets deb et les compiler toi même, (regardes apt-build, par exemple).
si tu installes en compilant des sources venues d’ailleurs, tu peux informer apt que tu as installé toi même un paquet donné avec equivs.

AMA, le plus simple pour toi, c’est d’utiliser apt-build en deux passes, et reconstruire les paquets debian en retouchant juste la manière dont c’est compilé dans /debian/rules (qui est le makefile du paquet).
mais fran.b est meilleur que moi sur le réempaquetage et la manipulation de paquets, si tu as des questions précises.

En gros,

  1. tu charges les sources de mysql

1.a) via apt-get
$ apt-get source mysql-dfsg
ou bien
1.a bis) tu vas sur http://packages.debian.org/stable/misc/mysql-common si c’est une sarge et tu charges les fichiers sources (.dsc, .diff.gz et .orig.tar.gz)
et tu fais

dpkg-source -x mysql*dsc

  1. Tu fais
    $ cd mysql-???
    et tu édites le fichier debian/rules

vers les lignes 70, tu as l’appel à .configure.

A ce stade tu peux mettre les options que tu veux en plus.

  1. Tu compiles en faisant

$ fakeroot dpkg-buildpackage -us -uc

le -us permet de créer les sources contenant tes modifications.

Il te faut les paquets suivants au minimum:
libtool, procps, debhelper, file, libncurses5-dev, perl, libwrap0-dev, zlib1g-dev, libreadline4-dev, psmisc, po-debconf, chrpath,
libssl-dev, automake1.7, autoconf, dpatch, gawk

donc fais auparavant

[code]

apt-get install libtool procps debhelper file libncurses5-dev perl libwrap0-dev zlib1g-dev libreadline4-dev psmisc po-debconf chrpath libssl-dev automake1.7 autoconf dpatch gawk dpkg-dev fakeroot[/code]

Ouah !!

Merci !!

Mais ne peut-on pas récupérer des sources et les compiler, cela éviterait de re-fabriquer des sources à partir des paquets ?

Merci

Bonjour,

Je voudrais apporter quelques précisions, et demander qulques informations, car je suis un peu perdu.

La problématique :

Je dispose actuellement d’un serveur de production, sur lequel Apache, PHP, MySQL ont été installé via des packages .deb.

Je dois configurer PHP pour qu’il puisse prendre en charge les fonctions OCI, ainsi que les bibliothèques qui vont biens pour se connecter à une base Oracle.

Pour cela, je suis obligé de compiler PHP, en lui spécifiant les options nécessaires à la prise en charge d’Oracle.

Le soucis se pose au niveau de la liaison avec Apache, et de l’installation de MySQL, en effet, dans la conception des packages .deb, il n’y a pas (enfin il me semble) les options qui permettent de lier le moteur PHP à Apache, et de configurer MySQL au niveau de PHP.

C’est donc pour cela que j’ai décidé de chercher des sources pour chaque module.

Ma question principale est : peut-on mélanger une installation via des packages et via des sources, en disposant des options qui vont biens pour lier chaque éléments ?

Merci de votre aide précieuse, car là je suis un peu dépourvu…
Nicolas

  1. C’est ce que je te suggère de faire: tu télécharges les sources (ce de Debian) et tu les recompiles avec tes options. L’intérêt est d’assurer un maximum de compatibilité avec les autres paquets.

  2. Pour ton problème, tu n’es pas le premier à faire ça, par exemple http://www.mail-archive.com/debian-user-french@lists.debian.org/msg123120.html fait par Patrice OLIVER, très au fait des pbms de php+SGBD et qui intervient très souvent sur la liste debian.user.french. Je te suggère donc de lire son message (tu as aussi http://www.andesi.org/forum/viewtopic.php?id=5575…) et en cas de souci de poster ici ou sur la liste DUF, tu auras des réponses dont celles de Patrice certainement.

[quote=“usinagaz”]bonsoir,
je sais pas trop, mais j’ai quelques remarques … :

  • pourquoi le configurer avec un préfixe, ça t’obligera à d’autre manip par la suite, vu que sous debian, une bonne partie de mysql doit se trouver par défaut dans /etc
  • moi j’ai plutôt l’impression que le script te l’a lancé, puisqu’il te donne le pid, puis il le stoppe … tu as essayé de le relancer par /etc/init.d/mysql restart en root ?
  • enfin, pourquoi tu le recompiles ? quel est ton interêt ?[/quote]

Si je n’utilise pas de préfixe, de quelles manières vont être dispatchés les différents fichiers ?

Dans le .configure fourni avec le fichier debian/rules, ne modifies pas les localisation de fichiers, c’est essentiel pour la bonne cohabitation des fichiers. Contentes toi de rajouter -with oracle…

Je n’ai pas encore testé ta solution fran.b, ceci dit elle passera de toute façon à la casserole comme les autres.

J’ai tout d’abord essayer de compiler tous les modules séparemment. Ce que j’en retire, c’est que c’est extrêmement long, mais ça fonctionne !! Mis à part la connexion à la base MySQL que je n’ai pas validée, car il y a une partie post-installation assez conséquente à réaliser que je n’ai pas pris le temps de faire.

Fort de tout cela, j’ai désinstallé uniquement MySQL, et je suis passé par apt-get install mysql-server. Tout s’est correctement installé (j’ai pu par ailleurs valider la connexion à la base), mais le problème, c’est que je ne retrouve pas mes librairies, pour pouvoir lier le packages MySQL, aux sources que j’ai compilé moi même (Apache et PHP).

Ma question est la suivante, Où se trouve ces librairies, et quelles noms portent-elles (en tout cas pas le même que sur les sources MySQL…) ?

Merci d’avance pour vos réponses,
Nicolas

[quote=“nicocolt”]Je n’ai pas encore testé ta solution fran.b, ceci dit elle passera de toute façon à la casserole comme les autres.(…)[/quote]Dommage, ca me parait la solution la plus simple.

Ne t’inquiètes pas, je vais la tester, mais je suis assez curieux pour tester divers solutions. Pour l’instant je te renvoie au message précédent le tien et à la question que je pose, si toutefois tu as une idée sur la réponse :wink:

dpkg -L <paquet>te donne la liste des fichiers installés par le paquet
C’est ça que tu cherches ?