You are on page 1of 21
Instalacion de MySQL Si es un usuario novel, puede que necesite instalar su propia copia de MySQL para tener algo con lo que practicar. © puede que hasta el momento esta tarea la hayan realizado administradores de servicios y solamente sienta curiosidad. Sea cual sea la razon, si utiliza MySQL @ menudo, es muy probable que tenga que instalarlo en un momento u otro, Si le interesa acometer esta tarea cuanto antes, este capitulo la facilitara el proceso para que, una vez finalizado, se pregunte a que se debia tanto misterio. En este capitulo abordaremos los siguientes temas: + Instalacion de una distribucién fuente o binaria + Instalacion en Windows + Instalacion en Unix + Instalacion de distribuciones fuente y binarias, + Compilacion optima de MySQL. + Instalacion de varios servidores en el mismo equipo + Uso de mysql_multi para ges jionar varios servidores + Actualizacién de la version 3.23 de SQL a la version 4 579 Instalacion de una distribucion fuente o binaria MySQL es un desarrollo de codigo abierto, lo que significa que el codigo fuente esta disponible gratuitamente para todo el mundo que lo quiera. Los siste- ‘mas operativos como Linux y FreeBSD tambien son de codigo abierto, pero Windows es un software propietario, lo que significa que el codigo fuente es propiedad y esta bajo el control de Microsoft. Como el codigo fuente de MySQL. esta disponible, hay dos formas de instalar MySQL: + Instalacion binaria, lo que significa que se utiliza una distribueion ya eom- pilada por programadores de MySQL (0 de terceros), + Instalacion fuente, lo que signi mente el codigo fuente MySQL. que debe compilar e instalar personal- Normalmente la instalacion binaria de MySQL resulta mas sencilla y rapida pero la decision depende de distintos factores, asi como de su facilidad para compilar software. Los usuarios de Windows apenas tienen que hacerlo, pero los usuarios de FreeBSD, por ejemplo, lo tendran que hacer a menudo, Existen diver- sas razones para decantarse por una instalacion: + Elssistema en el que quiere instalar no tiene una distribucion binaria, En el momento de creacion del libro, habia distribuciones binarias disponibles para Linux, FreeBSD, Windows, Solaris, MacOS X, HP-UX, AIX, SCO, SGI Iris, Dec OSF y BSDi, aunque no todos tenian distribuciones para la ultima version de MySQL. + Puede que le interese optimizar MySQL con un compilador diferente 0 por medio de opciones de compilacion distintas. Puede que necesite algo que la distribucion binaria no ofrezca, como con- juntos de caracteres adicionales, la solucién de algun fallo o una configu- ration diferente. En las tablas 15.1 y 15.2se describen los directorios de una instalacion binaria instalacion fuente respectivamente. ‘Tabla 15.1. Directorios de una instalacion binaria Paes Deere ac bin Almacena los ejecutables binarios, incluyendo el tan importante msyqld, asi como todas las utilida- des como mysqladmin, msyqicheck y msyqldump. Peart Pea aca) data Las bases se datos, asi como los archivos de registro. | inciuae Archivos de encabezado C. | aap Las bibliolecas compiladas. scripts Contiene la secuencia de comandos msyq1— | install db. share/msyql Un directorio para cada idioma con archivos que incluyen los mensajes de error para ese idioma en concreto. sql-bench Resultados y utilidades de analisis comparativo. | Tabla 152. Directorios de una instalacion fuente eect) DE bin Almacena los ejecutables binarios, incluyendo el tan importante msyqld, asi camo todas las utilida- des como mysqladmin, msyqicheck y msyqldump. include ‘Archivos de encabezado C. info ‘Archivos de documentacién en formato Info. aap Las biblio:ecas compiladas. Libexec En una instalacion fuente predeterminada, el ser- | vidor mysqld se almacena aqui, no en el directorio bin. share/mysql Un directorio para cada idioma con archivos que incluyen los mensajes de error para ese idioma en concreto. sqi-bench Resultadcs y utilidades de analisis comparativo. van Las bases de datos y tos archivos de registro. Instalaci6n de MySQL en Windows Para instalar MySQL en un equipo bajo Windows, necesita lo siguient« + Unsistema operativode la familia W 95/98/Me 0 Windows NT/2000/XP. \dows, es decir, actualmente, Windows + Una copia de los ejecutables de MySQL o el codigo fuente MySQL (si quiere compilar personalmente MySQL). + Un programa para descomprimi- el archivo de distribucion + Espacio suficiente para MySQL en su sistema, + Compatibilidad con TCP/IP. Si su equipo puede conectarse a Intemet, ya lo tendra. En caso contrario, instalelo (es un protocolo de red). + Si quiere conectar MySQL a traves de ODBC, por ejemplo para conectar Microsoft Access a MySQL, necesitara el controlador MyODBC Instalacion de una distribucion binaria en Windows. Para realizar la instalacion en Windows NT/2000/XP, debe asegurarse de que se ha conectado como ustario con privilegios de administrador. Para actualizar desde una version anterior de MySQL, tendra que detener el servidor. Si se ejecu- ta como servicio, detengalo con lo siguiente: c:\> NET stor Myson tambien puede utilizar msyqladmn: C:\mysql\bin> mysqladmin -u root -pg00z002b shutdown Si quiere cambiar el ejecutable que esta utilizando (por ejemplo, mysqld- max~nt por msyqid-opt) en Windows NT/2000/XP, tendra que eliminar el servicio: PeAmpeal\hiny myegldomer-ne remo Tras ello, siga los pasos descritos a continuacién: 1, Descomprimacel archivode distritueioncomprimidoen un directorio temporal. 2. Ejecute el ejecutable setup.exe para predeterminada, MySQL se instala en C:\msyql aunque muchos usua- ios de Windows prefieren ubicerlo en una posicion como : \Archivos de programa \MySQL. Si cambia la ubicacion, tendra que especificar- Jaen el archivo de configuraciéa (normalmente my. ini): basedixeb:/ruta de instalacién/ datadireD:/ruta de datos/ 3. MySQL incluye una serie de archivos ¢ funcion de sus necesidades (tabla 15.3). Tabla 153. Archivos ejecutables nysqld Un binario que admite depuracion, la comproba- cion automética de la asignacion de memoria, ta- 582 blas transaccionales (InnoDB y BDB) y enlaces sim- bolicos. mysqld-opt Un binario optimizado sin compatibilidad con ta- blas transaccionales (InnoDB 0 BDB). mysqlé-nt, Un binaric optimizado que admite (para su uso ‘con NT/2CO0/XP). Se puede ejecutar en Windows 951 98/Me pero no se crearan canalizaciones con nom- bre ya que estos sistemas operativos no las aamiten, nysqid-max Un binario optimizado que admite tablas transac- cionales (InnoDB y BDB) y enlaces simbolicos. mysqld-max-nt Un binario optimizado que admite tablas transac- cionales iInnoDB y BDB) que son canalizaciones con nombre cuando se ejecutan en NT/2000/XP, y enlaces simbolicos. Instalacion de MySQL como servicio en Windows NT/2000/XP Si realmente quiere ejecutar MySQL en Windows, seguramente quiera hacerlo como servicio, Esto permite que el proceso se inicie automaticamente (la opcion mas aconsejable para un servidor de bases de datos) al iniciarse Windows y que stoma samente evando se cierre Windows. Los servi jos se ejecutan desde Windows y no se ven afectados por usuarios que se conectan y se desconec- tan, Con NT/2000/XP, instale MySQL como servicio de esta forma: c:\> e:\mysql\bin\mysqld-max-nt install Si no quiere que MySQL se inicie automaticamente pero quiere que lo haga como servicio, ejecute el mismo comando con la opcion manual: Ce\myea Vine myegidemavont —ineeadd manual Tras ello, podra iniciar el servicio de esta forma: c:\> net start mysql The MySql service The MySql service was started successfully. Y detenerlo con la habitual mysqladmin shutdown o con lo siguiente: :\> net stop mysql The MySql service is stopping. The MySql service was stopped successfully Para eliminarlo como servicio, debe ejecutar lo siguiente: c:\> e:\mysql\bin\myeqld-max-nt remove oo Tambien puede utilizar el panel de control de servicios y pulsar Iniciar o Detener. Debe saber que Windows NT tene un problema al cerrar MySQL. automaticamente ya que no espera lo suficiente para que se cierre antes de apa- garlo (por lo no se produce un cierre limpio y aumentan los riesgos de daiiarlo). Para solucionar este problema, abra el Editor de registros \winnt \ system32\regedt 32.exe y defina un nuevo valor en milisegundos para WaitToKillServiceTimeout en HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlset\Cont rol del arbol de registros. En capitulos anteriores encontrara més informacion cobre la forma de iniciar MySQL. En la tabla 15.1 se incluye ura breve descripcion de los contenidos de los directorios que se acaban de crear. Instalacion de MySQL en Unix Para instalar MySQL en un equipo Unix, necesitara lo siguiente: + Unsistema operativo de la familia Unix (Linux, FreeBSD, etc), + Una copia de los ejecutables de MySQL 0 el codigo fuente MySQL (si quiere compilar personalmente MySQL). + gunzip (gzip o zeat) y tar para extraer y descomprit SNU). ir el archivo de distri- bucion (le recomendamos las versiones + Espacio suficiente para MySQL en su sistema, + make y un compilador C++ (como gee) si tiene pensado compilar el codigo fuente. Instalacion de una distribucion binaria (tar) en Unix Para instalar MySQL en Unix desde una distribucion binaria, siga los pasos descritos a continuacién: 1. Cambie a usuario raiz. Es muy probable que tenga que actuar como raiz para ejecutar los siguientes comandos: ‘ Pa word: 2. Afiada el usuario MySQL y el grupo MySQL con los que se ejecutara MySQL. Nunca debe ejecutar MySQL como usuario raiz. Si lo desea, puede asignar otro nombre al usuario y al grupo: % groupadd mysql ‘S useradd -g mysql mysql 3. Cambie al directorio en el que quicra ubicar MySQL. De forma predeter- minada, MySQL espera ubicarse en /usr/ local si se trata de una ins~ talacion binaria, pero puede indicar cualquier otro, Si cambia la ubicacion, tendra que aplicar los cambios a la configuracién y a algunas de las utili- dades distribuidas con MySQL para que apunten a la nueva ubicacion: * cd /uss/locat 4, Extraiga ol archivo: ® gunzip -¢ /hone/ mysql-nax-4.x.x-platform-os-extra.tar.gz | tar one - Fl nombre de archivo que vera dependcra de la distribucion que utilice. Fh este caso vemos mysql-max-4.0.2-alpha-pe-linux-gnu-i686. Asegi- rese de que tiene la version correcta para su sistema. ADVERTENCIA: Se sabe quc MAGMIGH SUD G8 tar BRINGS BrOblEms por lo que en su lugar debe itil ‘Una vez completados estos pasos, se crcara un nucvo directorio en funcion det nombre de la distribucion que instale, como se indica a continuacién: Sas -1 aye total 1 drwar-xe-x 13 mysql us 024 Jul 1 14:15 mysql-max-4.x.x-platform-os-extra para su utilizacién diaria, por lo que debe ercar un en Hadu mysql que apunte al nucvu ditwetoriv Ue forma que /ust /Le= cal/mysql/ sea la ruta a MySQL: ln ws mysql-max-4.x.x-plattors- els -2 aye Lrwxrwxrwx 1 root root. 40 Jul 27 23:07 mysql -> mysgl-max-4.x.x-platform-0e-extra extra mysql El directorio recién instalado contiene lo siguiente: ca mysqt eas -1 total 4062 cL mysql crwerr ol mysql cower 1 mysql Ew 19106 gul 1 14:06 copyiNG 28003 Jul 1 14:06 COPYING.LIB 122323 Jul 1 13:16 Changelog crw-rcr Ll mysql users 6808 Jul 1 14:06 INSTALL- BINARY -rw-r-r- 1 mysql users 4937 Jul 4 13:16 READE drwxr-xr-x 2 mysql users 1024 Jul 1 14:15 bin srwxr-xr-x 1 mysql users. 773 Jul 1 14:15 configure drwar-x- 4 mysql users i024 gul 1 14:19 data Grexr-xr-x 2 mysql users i024 Gul 1 14:15 include drwxr-xr-x 2 mysql users 1024 Jul 1 14:15 1ib drwxr-xr-x 2 mysql users 1024 Jul 1 14:15 man ciw-rx- i mysql users 2508431 Jul 1 14:06 manual html cev-e-r- 1 mysql users 2159032 Jul 1 14:06 manual txt eee ee erect eoeeeel pacoa gut 2 lava manual-toc html drwxr-xr-x 6 mysql users 124 dul 1 14:18 mysql- drwxr-xr-x 2 mysql users 3024 Jul 1 14:15 scripts drwxr-xr-x 3 mysql users 3024 Gul 1 14:15 share drwxr-xr-x 7 myaql users 1024 Jul 1 14:15 aql-bench @rwxr-xr-x 2 mysql users 1024 Jul 2 14:15 support- files Grexr-xr-x 2 myagl users 1024 Jul 1 14:15 tests Ya sc ha instalado MySQL. Para instalar las tablas de permisos (como vimos ‘en un capitulo anterior), cjecute la secuercia de comandosmysql_ins tal l_db: \ scripts/mysql_install_db Preparing db table Preparing host table Preparing user tapie Preparing func table Preparing tables-priv table Preparing colunne-priv table Installing all prepared tables 020701 23:19:07 ./bin/mysqld: shutdown Complete Tras ello, cambie el propietario para garantizar que MySQL y el directorio de datos estan bajo el control del recién creado usuario MySQL, en caso de que no sea asl: 4% chown -R root /usr/lecal/mysql % chgep -R mysql /usz/local /mysql % chown -R mysql /usr/tocal/msqi/data Seguidamente, MySQL esta preparado para ejecutarse con msyqld_safe: 4 /usr/local/mysqi/bin/myaqld_safe —user=mysql & tefminaf 1g instalacion; ea $846 et mundoren el sistema, Al mismo configuracién justo despues Hl BRGGEEG de instalacién, En la tabla 15.1 encontrara un repaso de los contenidos de los nuevos directo- ios que se acaban de crear. Instalacion de una distribucién binaria (rpm) en Unix Red Hat Linux tambien le permite instalar MySQL desde un archivo RPM. En la tabla 15.4 se incluye la lista comple'a de archivos RPM disponibles (los niime~ ros de version reflejan la version que este utilizando) Tabla 15.4. Archivos RPM CT) Peeea) MySQL-4.x.x-platform- El software servidor MySQL, necesario a me- os-ext ra. rpm nos que simplemente se conecte a un servi dor existente. MysoL-client-4.x.x- EI software cliente de MySQL, necesario para platform-os-extra.rpm conectarse a un servidor MySQL. MySQL-bench-4.x.%- Distintas pruebas y andlisis comparativos de em-os-extra.rpm MySQL. Se necesitan los archivos Perl y ‘msql.mysql rpm. Mysqn-devel=4 ase Distintas biblioteeas y archivos necesariox platform-os-extra pare compilar otros clientes MySQL. MysoL~shared-4.x.x- Bibliotecas compartidas cliente MySQL platform-os-extra. rpm SQL-embedded=4.x.%- El servidor MySQL incrustado. plat forn-os-extra. rpm MySQL-4.x.x-platform- Hl eodigo fuente de los archivos rpm anterio- procntes eae2ern res. No es necesario si realiza una instala- ccion binaria, MySQL-Man- fears El rom Max de MySQL (compatible eon ta- platform-os-extra blas InnoBD, ete.). Para instalar los archivos rpm, basta con ejecutar la utilidad rpm con cada uno dle tos spin yue quiets inst cliente y el servidor: Nowmaleute 1y aninim yue debe instalar €s el % mpm -i MysQL-4.x.x-platform-os-extra.rpm MySQL-client-4.x.%- platform-0s-extra. spn La instalacion a traves de rpm genera una estructura ligeramente distinta que Ja que se obtiene por medio de una insialacion binaria convencional. Los datos se almacenan en el directorio /var/Lib/mysql y, al aiiadir entradas al directo- tio /ete/re..d/, asi como al crear una secuencia de comandos /ete/rc.d/ INIT. d/msyql, MySQL se configura para que empicce automaticamente de: pues del inicio. Debe prestar especial atencion si realiza una instalacion sobre otra anterior de esta forma, ya que tendra que rehacer todos los cambios que haya efectuado, Tras ello, MySQL sc puede ejecutar con mysqld_safe: ® /usx/local/mysql /bin/mysqld_safe —usersmysql 6 No olvide asignar una contraseiia raie y revisar su archivo de configuracion. Instalacion desde codigo fuente en Unix Es poco probable que quiera compiler MySQL desde codigo fuente para pro- duceion a menos que tenga experiencia a este respecto. Pero puede que haya alguien que disfrute del desafio, por lo que en este apartado describiremos deta- Hadainente el procesv. Re oS fySQL ya que la siguiente informacién se actualiza con gran rapidez ¥ arecen nuevas distribuciones para sustituir a las anteriores. Para realizar una instalacion desde una distribucién de codigo fuente, necesita lo siguies + gunzip (gzip 0 zeat), La version GNU funciona. + tar(cl tarGNU funciona, pero el tarde Solaris ha causado problemas cn el pasado). + make (le recomendamos utilizar e! make de GNU, los de Solaris y FreeBSD causan problemas). + gee. pgcc (u otro compilador C++ ANSI). Actualmente le recomendamos la version 2.95.2, aunque las distintas distribuciones se compilan con dife- rentes compiladores. Le sugerimes que consulte 1a documentacion MySQL ‘mas reciente para ver que compilador corresponde a su sistema operativo y si se conoce algun problema con otros compiladores. instalar desde codigo fuente, siga los pasos deseritos a continuacién: 1. Para empezar, igual que con las instalaciones binarias, eambie a usuario raiz y aiiada el usuario y el grupo MySQL: Password: * groupada aysal © useradd -q mysql mysql 2. Cambie al directorio en el que quiera almacenar los archivos (por ejemplo, /asr/local/sre o el que resulte apropiado). 3. Descomprima los archivos: gunzip -c /tmp/ mysqi-4.x.x-platform-os-extra.car.ge | tar -xt = 4. Tras ello, se habra creado un nuevo directorio. Cambie a este directorio, desde el que debe configurar y generar MySQL: cd mysql-4.x.x-extra 5. Ejecute la secuencia de comandos con figure, que viene incluida en la distribucién y le permite conf gurar distintas opciones de instalacion. Hay un gran numero de opeiones disponibles. Algunas de las mas utiles las describiremos mas adelante, otras las mencionaremos en un apartado pos- terior. 6. De forma predeterminada, MySQL compilado desde codigo fuente se ins- tala en /usr/1ocal y los archivos de datos y de registro se almacenan en /usr/1ocal/var. Para cambiar estas ubicaciones, utilice la opeion prefix, como se muestra en el ejemplo: & configure -prefix=/usr/local/mysql De esta forma se cambia el prefijo de toda la instalacion por /usr/1o- cal/mysql. Por otra parte, tambien puede cambiar la ubicacion del di- rectorio de datos por /usr/1ocai/mysqi/aata, mientras conserva el resto de la instalacion, como se muestra a eontinuacién * ./eonfigure ~prefix=/usr/lecal \ “localstatedir=/usr/local /mysqi/data Si lo prefiere, puede realizar alguna de estas acciones: Si no quiere compilar el servidor sino solamente los programas cliente para conectarse a un servidor existente. utilice la opcion—withou t= server: 8 Joon figura —i thost—narvar + Para utilizar Libmysqld .a, la biblioteca MySQL incrustada, nece- ita la opcion —with-enbedded-server ws + Para cambiar la ubicacion predeterminada del archivo de socket (nor- malmente /tmp), utilice configure de esta forma (el nombre de ruta debe ser absoluto): & ./configure -with-unix-socket-path=/usr/lecal/sockets/ mysql.sock + Para obtener el conjunto completo de opciones disponibles, ejecute lo siguiente: & ./eonfigure -nelp Una vez completadas estas operaciones (que pueden Ilevar su tiempo, en funcion de su configuracién), tendra que generar los binarios con el co- mando make © make 8. Tras ello, debe instalarlos: & moke install 9. Seguidamente, prosiga como si hubiera instalado un binario: crec las ta- blas de permisos y cambie la propiedad de los archivos. Los siguientes ejemplos asumen que se ha decid do por el prefijo /usr/Local /mysql 4 ca /use/Local/mysql % scripts/mysql_install_ab Preparing db table Preparing host table Preparing user table Preparing func table Preparing tables-priv table Preparing colunns-priv table Installing all prepared tabi oao7Z0 19:40:09. /bin/mysyid: shucdown comprece § chown -R root /usz/lecal/sysql SM chgrp -R mysql /usr/local/mysql & chown -R mysql /usr/local/mysqi/data 10. Tras ello, ya puede ejecutar MySQL con mysqld-safe: 4 /ust/local/mysqi/bin/mysqid_safe ~user=nysql & No olvide asignar una contraseiia raiz y comprobar su archivo de configura- cion. Las distribuciones eatdiidat de MySQL, se ApORInIA Dalila @ una compi- laci6n optima, pero si quiere obtener e! mayor rendimiento posible, teadd que realizar algunas mejoras. También es muy §@il realizar fom ec nor lo que deb " en Los binarios MySQL se suelen compilar con gee porque pgce (gee Pentium) causa problemas en procesadores que no son Intel. La compilacién si'su procesador esd (1 por ciento segin de caracteres que quiera iilizan Si cjecuta Linux en 86, la ESROBHMGIGH sin punteros de marco (~ o ~fomit-frame-pointer-ffixed- @ entre un 1 y un 4 por ciento. Instalacion de varios servidores cn cl mismo equipo Existen diversas razones para ejecutar varios servidores MySQL en el mismo equipo. No obtendra una mejora del rendimiento y es muy probable que no quiera pemnitir que las distintas versiones accedan a log mismos datos. Tambien, es probable que lo haga para probar una nueva version de MySQL sin eliminar la instalacion anterior. Si tiene pensado ejecutar varias versiones de MySQL en el, mismo equipo, debe asegurarse de que no intentan utilizar el mismo archivo de socket 0 que escuchan por el mismo puerto TCP/IP. También deben contar con su propio archivo pid. Los valores predeterminados son el puerto 3306 y /tmp/ mysql .sock en la mayoria de los sistemas. Una forma muy aconsejable de gestionarlo es por medio de la utilidad mysqld—multi, que veremos mas adelante, Puede cambiar el puerto predetermina- doy los parametros TCP/IP en el archivo de configuracion siempre que se trate de un archivo de configuracion distinto que el del otro servidor. Por ejemplo: socket=/tmp/mysql2.sock port=3307 Por medio de la opcién—sock et, los clientes pueden conectarsea servidores que se ejecuten en un socket diferente: 3 mysqi —socket=/tmp/mysqiz.sock ~uroot -pguuruuzn Tambien puede especificar el servidor al que hay que conectarse si indica el archivo de configuracion que debe utilizar el cliente. Por ejempl & mysql —defaults-files/usr/local/mysql2/ete/my.cnf ~ureot ~ pg00z002b compila personalmente MySQL, configure el segundo servidor con otro numero de puerto, otra ruta de socket y otro directorio de instalacion. Por ejem- plo: % -/eonfigure —with-tep-port=3307 \ wi th-unix-socket-path=/tmp/mysql2.sock \ ~profix=/uer/local/mysql2 ADVERTENCIA: Nunea debe haber mas de un servidor que controle los mismos datos, Io que constituye un evidente riesgo de dafios. Tampoco debe escribir los mismos archivos de registro. Las distribuciones MySQL incorporan una utilidad denominada mysqld—multi, una herramienta muy util para gestionar varios servidores MySQL (que se ejecu- tenen distintos puertos y sockets). Para utilizar mysqld-multi, debe configurar su archivo de configuracion con una seccion mysqld-multi, asi como con secciones para cada servidor MySQL que ejecute. Por ejemplo: (myegid-muiti] nysqid = /usr/local/bin/mysqid_sate mysqiadmin = /usr/local/bin/mysqladmin user root, password g00r002b (mysqld) socket Jemp/mysql.. sock port 3306 pid-file /usr/local /mysql/var/hostnane -pid datadir = /usz/local/mysql/var language /ust/Local/shere/mysql /english user hartmann (mysqid2: socket, ~ /tmp/mysql .sock2 port. ~ 3301pid-file = /uex/local/mysqi/v: hostname. pid datadir ~ Juse/local/mysal/var2 language __/usr/local/share/mysql/french user yves [mysqlasi socket = /emp/mysql sock} port 3308 pid-file /asr/Local/mysql/var3/hostnane.pid datadir = fuse/local/mysql/var3 language — local/share/mysql/german (nyeqida) socket = /emp/mysql.socks port - 3303 pid-file (usr/Local /mysql /var4/nostname -pid datadir fusr/local /mysqi/var4 language fusz/Local/share/mysql /english user = caledon La sintaxis de mysqld—multi es la siguiente: nysqld-multi [opeion/opeiones] (start| stop] report [grupo_numero, grupe_ntinero?...] Tomando la configuracion del arcaivo que acabamos de ver, en el siguiente ejempla mysqld —multi informa del estada del servidor y, tras ello, se ut cerrarlo: jen para \ mysgid-multi —user=root —password=g00r002b report 1 Reporting MySQL servers nySQL server from group: mysgldl is running % mysqld-multi ~user=root ~password=g00r002b stop 1 % 020729 04:20:50 mysqld ended % myaqld_multi ~user=root —password=g00r002b report 1 Reporting MySQL servers MySQL server from group: mysqldl is not running En la tabla 15.5 se descrihen las opciones de mysqld—multi Tabla 15.5. Opciones de mysqld_multi ea Desc config-file=... Define unarchivo de configuracion distinto para los ‘grupos (no afecta al grupo [mysqld —multi). example Proporciona un archivo de configuracién de mues- tra. -help Muestra la ayuda y sale. | cy Especifica el archivo de registro, tomando la ruta y el nombre completo del archivo. Si este archivo ya existe, los registros se adjuntan al final del archivo. | —mysqladmin= Ruta completa del binario msygladmin, utilizado para cerrar el servidor. mysql: Ruta completa y nombre de la biblioteca mysq dladmin que se va a utilizar 0, mas a menudo, el binario mysqld—safe. Las opciones so pasan 2 | mysqld. Tendra que cambiar mysqld-safe 0 asegu- | rarse de que se encuentra en su variable de entor- | no PATH no-log Se escribe en la salida estandar en lugar de en un archivo de registro. La opcién predeterminada es el archivo de registro. ~passwor La contrasefia del usuario de mysqladmin. —tep-ip Hace que mysqld_multi se conecte a los servido- res MySQL a traves de TCP/IP en lugar de utilizar Un socket Unix. De forma predeterminada, la co- nexion se realiza por medio de un socket en Unix -user=... El usuario de mysqladmin. Asegurese de que este rig tiene Ios privilegios adecuarins para reali- Zar lo que necesite (shutdown-priv). [eeeeeren Muestra el numero de version y sale. Como evitar problemas de instalacion comunes Cuando tade sala mal, puede raciitar axtremadamanta fristranta, cohre tada si todavia no ha empezado. Es muy complicado, especialmentepara los usuarios sin experiencia, saber que hacer cuando se enfrentan a un extraiio mensaje de error (si tienen |a suerte de obtener uno). Enel siguiente apartado veremos algunos de los problemas de instalacion mas comunes, Problemas al iniciar msyqld Los problemas al iniciar mysqld se hacen evidentes al intentar instalar sin exilo las tablas de permisos. Existen diversas razones para estos problen vera ena siguiente lista, y el examen del registro de errores es la mejor forma de saber cual es el problema. + Puede que tenga un problema e1 su archivo de configuracién (my. nf 0 my. ini). Revise atentamente la sintaxis o utilice el archivo de configura- cion estandar incluido en su distribucion para ver si puede indicar MySQL. * Otro error muy habitual es este: can't start servers Bind on unix socket. oel iguiente: Can't start server: Bind on TCP/IP port: Address already in u Bute error se produce cuanto intenta instalar una segunda copia de MySQL en el mismo puerto o socket de una instalacion existente. Asegurese de especificar un puerto o socket cistinto antes de empezar. + Los problemas relacionados con los permisostambien son habituales. Com- prucbe que ha seguido los pasos descritos en la seceién de instalacion para que al menos sean correctos los directorios MySQL. iza sockets, tendra que verificar si tiene permiso para escribir tambien el archivo de socket (normalmente en /tmp) + Otro de los problemas habituales se produce con las bibliotecas. Por ejem- plo, si utiliza Linux y ha instalado bibliotecas compartidas, asegurese de que la ubicacion de las mismas se enumera en su archivo /etc/ 1d.80. conf. Por ejemplo, si tiene: /ast/local/1ib/mysql/Libmysqlclient .s0 Asegurese de que /et¢/1d. 80. con£ contiene: Juse/local/ib/mysal Y cjecute ldconfig. + Aliniciar MySQL, si el siguiente: iay tablas BDB, puede encontrar un problema como o20024 29:20:02 Lab, wenaduys -/ldb/uewssdhs ty eu £126 or directory 020824 19:16:02 can't ini> data Esto significa que BDB tiene problemas para recuperar un archivo de re~ gistro existente, Puede iniciar MySQL con la opeién—bdb-no-recover 0 desplazar los archivos de reg stro. Problemas de compilacion Si tiene problemas al realizar la compilacion y debe realizarla una segunda ocasion, tendra que asegurarse de que configure se ejecuta desde cero; en caso contrario, utilizara informacion de su instancia anterior, almacenada en el archivo confi g-cache. Tendra que eliminar este archivo cada vez. que reali- ce 1a configuracion. Del mismo modo, los archivos de objetos antiguos pueden seguir presentes y, para garantizar une nueva compilacton limpia, tendra que eli- minarlos. Ejecute lo siguiente: 4 xm config-cache make clean Tambien puede ejecutar d i stCLean si lo tiene. Puede que su compilador este obscleto. En la actualidad, MySQL sugiere la utilizacién de gce 2.95.20 exes 1.0.3, pero es muy probable que haya cambiado, por lo que le aconsejamos que consulte la ultima documentacién. Otros problemas pueden aparecer como resultado de una version de make incompatible. Actual- mente, MySQL recomienda make GNU, version 3.75 0 superior. Si obtiene un error al compilar sql_yacc . cc, puede que no tenga suficiente espacio en el disco. En algunos cases, 1a compilacién de este archivo utiliza demasiados recursos (incluso cuando parece que hay multitud de ellos disponi- bles). El error puede ser uno de los siguientes: Internal compiler error: program celplus got fatal eignal 12 out of virtual memory Vistual memory exhausted Al ejecutar configure con la opcion —low-memory se suele solucionar este problema: 4 ./eonfigure ~with-low-menory Si tiene problemas con las biblictecas relacionadas, como g++, libg++ 0 libstcd++ (puede que no esten disponibles), intente configurar gee para que sea su compilador C++, como se indica a continuacion: & cxKe"gee -03" ./configure La vinculacion estatica, ademas de ser mas indicada, tambien puede resolver problemas relacionados con referencias sin detinicion. Problemas de Windows Si pulsa dos veces sobres ¢ tup. exe y el proceso se inicia pero nunca termi na, puede que haya algo que interfiera con MySQL. Intente uno de estos procedi mientos: + Cierre todas las aplicaciones de Windows, incluyendo los servicios y las de la bandeja del sistema. + Por otro parte, intente la instalacion en modo seguro (pulse F8 al ini seleccione esta opcion en el menu).. iar y + Enel peor de los casos tendra que reinstalar Windows e instalar primero MySQL, antes de ningun otro programa. Es poco probable que se produz~ ca este problema en equipos de produccién dedicados como servidores de bases de datos MySQL. Suelen aparecer en equipos multifuncion en los que se ejecutan todo tipo de aplicaciones. Actualizaci6n de MySQL 3.x a MySQL 4 MySQL ha suftido importantes mejoras de desarrollo de la version 3.23.xx a Ja version 4 y existen numerosas diferencias a las que debe prestar atencion a la hora de realizar la actualizacion: + Elscript msyqld_safe sustituyea safe_mysqid. + Existe gran cantidad de nuevos privilegios en la tabla de usuarios (en la base de datos mysql) . MySQL proporciona una secuencia de comandos para afiadir estos nuevos permisos a la ver. que conserva los existentes. Se denomina nysql_fix privilege tabIBH\WaddptHlUSptieGoRERUIGSTION SLAVE y REPLICATION CLIENT de! antiguo privilegio FILE, y los privile~ ios SUPER y EXECUTE del antiguo PROCESS. Sin ejecutar esta secuencia de comandos, todos los usuarios tendrin privilegios SHOW DATABASES, (CREATE TEMPORARY TABLES y LOCK TABLES. + Los atributos de Length y max length (en la estructura MYSQL_FIELD) son ahora unsigned long en lugar de unsigned int. + La antigua opcién - safe-show-database ha quedado obsoleta (ya no hace nada, puesto que se ha reemplazado por el privilegio SHOW DATABASES en la tabla de uswarios) + Scha cambiado el nombre de una serie de variables: myisam-bulk-insert-tree-size por bulk-insert-bufte: query-cache-startup~type por query-cache-type record-buffer por read-bufter-eize record-rnd-butfer por read rnd_buffer_size sort~butfer por sort-butter-size warnings por log-warnings + Algunas opciones de inicio de mysqld tienen un nuevo nombre: p-locking por ~ ski = enable-locking por - el de los parametioy de inicio myisammax_extra_sort— file y myisam_amx_extra_sort se proporciona ahora en bytes, no en megabytes. sx:ernal-locking sternal locking Algunas opciones de inicio han quedado obsoletas (por el momento siguen funcionando): record-butter sort buffer warnings EI bloqueo externo aparece ahora desactivado de forma predeterminada, Las siguientes variables SQL tiznen un nuevo nombre (los nombres anti- guos siguen funcionando, pero Fan quedado obsoletos): SOL_BIG_TABLES por BIG-TABLES SQL_LOW_PRIORITY_UPDATES por LOW-PRIORTTY-UEDATES SOL_MAK_JOIN SIZE por MAK-COIN-SIZE SQL_OUERY CACHE TYPE por QUERY-cACHE-TvPS SIGNED es un palabra reservada. Las columnas de tipo DOUBLE y FLOAT ya no ignoran el indicador UNSIGNED. Las columnas B1GINT ahora almacenan enteros con mayor eficacia que Jas cadenas. El comportamiento predetermirado de ta funcion STRCMP () distingue ahora entre mayusculas y minusculas ya que utiliza el conjunto de caracte~ res predeterminado cuando realiza comparaciones. ‘TRUNCATE TABLE es mas rapido queDELETE FROM nonbre_de_la_ tabla ya que no devuelve el numero de filas eliminadas. Las funciones LOCATE () € INSTR () distinguen ahora entre mayiiscu- las y minusculas si uno de los argumentos es una cadena binaria, Abora, cuando se le pasa una cadena a la funcion HEX () , todos los earac~ teres se convierten en dos digitos hexadecimales. La instruccién SHOW INDEX ticne dos columnas adicionales: Null ¢ Index_type. ‘Ya no se pueden ejecutar las instrucciones TRUNCATE TABLE 0 DROP DATABASE cuando hay un bloqueo activo (ya sea deLOCK TABLES 0 de una (ransaccién), En su lugar se devuelve un error. La cliusula ORDER BY nombre de—columna DESC ordenara pri- mero los valores NULL en todos los casos, mientras que antes lo hacia sin coherencia alguna. Los resultados de todas las operaciones de bits (<<, >>, |, &, -) son ahora sin firma, al igual que el resultado de la resta entre dos enteros, cuando uno de ellos no tenga firma (esto se puede desactivar si se inicia MySQL con la opcién —sql ~mode=No_UNSIGNED_SUBTRACTION) . + Si quiere utilizar la instrucciér MATCH..AGAINST (..1N BOOLEAN MODE) tendra que volver a generar sus tablas con ALTER TABLE nombre_de_tabla TYPE=MyTSAM. Esto se aplica incluso si las ta- blaya son ISAM. + Es necesario especificar una cléusula 1GNORE cuando se utilice una ins- truccion de tipo INSERT INTO..SELECT 0, en caso contrario, MySQL se detendra y posiblemente realice una inversion. + Lafuncion RAND (seed) ahoradevuelve una serie de numeros aleatorios diferentes que antes (para distnguir RAND(valor inicial) de RAND(valor inicial+1)), + El formato de siiow OPEN Ne ‘6 ha cambiado. * Ya nose admiten las antiguas funciones del API C mysql_drop_db(}, mysql_create_db() ymysql connect (). Puede compilar MySQL con la opcién CFLAGS=~DUSE OLD FUNCTIONS, pero debe actuali- zar sus clientes para que utilicer el API de la version 4.0. + Si utiliza el modulo DBD::mysql de Perl, tendra que utilizar una version ‘mas reciente que 1.2218, ya que las versiones anteriores utilizaban la anti- gua funcion drop—db(). + En lugar de utilizar SET SQL_SLAVE_SK1P_COUNTER=#, tendra que emplear SET GLOBAL SQL_SLAVE_SKIP_COUNTE! + Los clientes multiprocesamiento deben utilizar las funciones msyqi— thread initQy mysqlthread_end(). Resumen La instalacion de MySQL no es complicada. Si opta por una distribucion binaria, la mas recomendable en Ia mayoria de los casos, basta con apuntar y pulsar en Windows, y utilizar algunos sencillos comandos en Unix. Tambien hay razones validas para optar por una distribucion de codigo fuente, si MySQL todavia no esta disponible en formato binario para su plataforma o si necesita obtener el mayor rendimiento de MySQL compilandolo de forma optima. Sea cual fuere la razon, con la correcta manipulacién de las opciones de com= pilacion, podra obtener una instalacion rapida pero estable de MySQL.

You might also like