[+/-]
Luego de instalar MySQL en Unix, se necesita inicializar las tablas de permisos, ejecutar el servidor, y asegurarse de que éste funciona correctamente. También se podría desear que el servidor se inicie y detenga automáticamente cuando lo haga el sistema. Se deben asignar contraseñas a las cuentas en las tablas de permisos.
En Unix, las tablas de permisos se configuran mediante el programa mysql_install_db. En algunos métodos de instalación, este programa se ejecuta automáticamente.
Si se instala MySQL en Linux a partir de una distribución RPM, el servidor RPM ejecuta mysql_install_db.
Si se instala MySQL en Mac OS X a partir de una distribución PKG, el instalador ejecuta mysql_install_db.
En otro caso, será necesario ejecutar manualmente mysql_install_db.
El siguiente procedimiento describe cómo inicializar las tablas de permisos (si no se hizo anteriormente) y luego iniciar el servidor. También sugiere posibles comandos a utilizar para verificar que el servidor está accesible y en correcto funcionamiento. Para información relativa a iniciar y detener el servidor automáticamente, consulte Sección 2.9.2.2, “Arrancar y parar MySQL automáticamente”.
Luego de completar el procedimiento y tener el servidor en funcionamiento, se deberían asignar contraseñas a las cuentas creadas por mysql_install_db. Las instrucciones para hacerlo se hallan en Sección 2.9.3, “Hacer seguras las cuentas iniciales de MySQL”.
        En los ejemplos mostrados, el servidor se ejecuta bajo el
        identificador de usuario de la cuenta de inicio de sesión
        mysql. Se asume que dicha cuenta existe. La
        cuenta mysql puede haber sido creda
        especialmente o bien originarse al cambiar el nombre de una
        cuenta existente.
      
            Posicionarse en el nivel más alto del directorio de
            instalación de MySQL, representado por
            BASEDIR:
          
shell> cd BASEDIR
            BASEDIR muy probablemente se
            reemplace por algo similar a
            /usr/local/mysql o
            /usr/local. Los siguientes pasos asumen
            que se está en este directorio.
          
De ser necesario, ejecutar el programa mysql_install_db para establecer las tablas de permisos MySQL iniciales, las que contienen los privilegios que determinan qué usuarios están autorizados a conectarse al servidor. Habrá que ejecutarlo si se utilizó una distribución que no lo hace automáticamente.
Por lo general, mysql_install_db sólo requiere ser ejecutado la primera vez que se instala MySQL, de modo que este paso puede obviarse si se está actualizando una instalación existente. No obstante, mysql_install_db no sobreescribe ninguna tabla, por lo tanto, es seguro utilizarlo en cualquier circunstancia.
            Para inicializar las tablas de permisos se utilizará uno de
            los siguientes comandos, dependiendo de si
            mysql_install_db se encuentra en el
            directorio bin o
            scripts:
          
shell> bin/mysql_install_db --user=mysql shell> scripts/mysql_install_db --user=mysql
            El script mysql_install_db crea el
            directorio de datos, la base de datos
            mysql que almacena todos los privilegios
            para el servidor, y la base de datos test
            que puede emplearse para probar MySQL. El script también
            crea entradas en la tabla de permisos para la cuenta
            root y la cuenta de usuario anónimo. Las
            cuentas no están protegidas por contraseña en un
            principio. Una descripción de los permisos que tienen se
            encuentra en Sección 2.9.3, “Hacer seguras las cuentas iniciales de MySQL”.
            Brevemente, estos privilegios le permiten al usuario
            root de MySQL hacer cualquier cosa, y le
            permiten a cualquier usuario de MySQL crear o utilizar bases
            de datos cuyo nombre sea test o comience
            con test_.
          
            Es importante asegurarse de que los directorios y ficheros
            de bases de datos tienen como propietario a la cuenta de
            inicio de sesión mysql, para que el
            servidor tenga acceso de lectura y escritura a los mismos.
            Para cerciorarse de esto, si
            mysql_install_db se ejecuta mientras se
            está como root del sistema operativo,
            hay que usar la opción --user como se
            muestra. En otro caso, el script se deberá ejecutar
            mientras se está como usuario mysql del
            sistema operativo, en cuyo caso se puede omitir la opción
            --user.
          
            mysql_install_db crea varias tablas en la
            base de datos mysql, incluyendo
            user, db,
            host, tables_priv,
            columns_priv, y func,
            entre otras. Consulte Sección 5.6, “El sistema de privilegios de acceso de MySQL”
            para una descripción completa.
          
            Si no se desea tener la base de datos
            test, se la puede eliminar con
            mysqladmin -u root drop test luego de
            iniciar el servidor.
          
Si ocurren problemas con mysql_install_db, consulte Sección 2.9.2.1, “Problemas en la ejecución de mysql_install_db”.
Hay algunas alternativas para ejecutar el script mysql_install_db que se provee con la distribución de MySQL:
                Si se desea que los privilegios iniciales sean
                diferentes de los establecidos por defecto, se puede
                modificar mysql_install_db antes de
                ejecutarlo. Sin embargo, es preferible utilizar
                GRANT y REVOKE
                para modificar los privilegios
                después que las tablas de permisos
                se hayan creado. En otras palabras, se puede ejecutar
                mysql_install_db, y posteriormente
                emplear mysql -u root mysql para
                conectarse al servidor como usuario
                root de MySQL y aplicar las
                sentencias GRANT y
                REVOKE que sean necesarias.
              
                Si se desea instalar MySQL en varios ordenadores con los
                mismos privilegios, se pueden colocar las sentencias
                GRANT y REVOKE en
                un fichero y ejecutarlo como un script utilizando
                mysql después de ejecutar
                mysql_install_db. Por ejemplo:
              
shell> bin/mysql_install_db --user=mysql shell> bin/mysql -u root < your_script_file
De este modo se evita tipear las sentencias en cada ordenador.
                Es posible regenerar las tablas de permisos
                completamente aunque ya estén creadas. Se puede
                necesitar esto si se está aprendiendo a usar
                GRANT y REVOKE y
                se han hecho tantas modificaciones tras la ejecución de
                mysql_install_db que se desea vaciar
                las tablas de permisos y comenzar de nuevo.
              
                Para regenerar las tablas de permisos, eliminar todos
                los ficheros .frm,
                .MYI, y .MYD
                en el directorio que contiene la base de datos
                mysql. (Este es el directorio llamado
                mysql dentro del directorio de
                datos, el cual aparece listado como el valor
                datadir cuando se ejecuta
                mysqld --help.) Luego debe ejecutarse
                nuevamente el script mysql_install_db
              
                Se puede iniciar mysqld manualmente
                utilizando la opción
                --skip-grant-tables e ingresar los
                permisos manualmente utilizando
                mysql:
              
shell> bin/mysqld_safe --user=mysql --skip-grant-tables & shell> bin/mysql mysql
Desde mysql, ejecutar manualmente los comandos contenidos en mysql_install_db. Al finalizar hay que asegurarse de ejecutar mysqladmin flush-privileges o mysqladmin reload para indicarle al servidor que lea nuevamente las tablas de permisos.
Nótese que al no utilizar mysql_install_db, no solamente hay que cargar manualmente el contenido de las tablas de permisos, sino que también hay que crearlas primero.
Iniciar el servidor MySQL:
shell> bin/mysqld_safe --user=mysql &
            Es importante que el servidor MySQL sea ejecutado utilizando
            una cuenta de sistema operativo sin privilegios (distinta a
            root). Para cerciorarse de esto, se debe
            usar la opción --user si se ejecuta
            mysql_safe habiendo iniciado sesión del
            sistema operativo como root. En otro
            caso, se debería ejecutar el script mientras se ha iniciado
            sesión como mysql, en cuyo caso se puede
            omitir la opción --user.
          
Mayores instrucciones para ejecutar MySQL como un usuario sin privilegios se encuentran en Sección A.3.2, “Cómo ejecutar MySQL como usuario normal”.
Si se omite la creación de las tablas de permisos antes de llegar a este paso, aparecerá el siguiente mensaje en el fichero de registro de error cuando se inicie el servidor:
mysqld: Can't find file: 'host.frm'
Si ocurren otros problemas al iniciar el servidor, consulte Sección 2.9.2.3, “Arrancar y resolver problemas del servidor MySQL”.
Utilizar mysqladmin para verificar que el servidor se encuentra en ejecución. Los siguientes comandos proporcionan formas simples de saber si el servidor está activo y responde a conexiones:
shell> bin/mysqladmin version shell> bin/mysqladmin variables
La salida producida por mysqladmin version varía dependiendo de la plataforma y la versión de MySQL, pero debería ser similar a esto:
shell> bin/mysqladmin version mysqladmin Ver 8.41 Distrib 5.0.9-beta, for pc-linux-gnu on i686 Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version 5.0.9-beta-Max Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 14 days 5 hours 5 min 21 sec Threads: 1 Questions: 366 Slow queries: 0 Opens: 0 Flush tables: 1 Open tables: 19 Queries per second avg: 0.000
            Para ver qué otras tareas pueden hacerse con
            mysqladmin, se lo debe invocar con la
            opción --help.
          
Verificar que se pueda detener el servidor:
shell> bin/mysqladmin -u root shutdown
Verificar que se pueda reiniciar el servidor. Hacerlo mediante mysqld_safe o invocando directamente a mysqld. Por ejemplo:
shell> bin/mysqld_safe --user=mysql --log &
Si mysqld_safe fallara, consultar Sección 2.9.2.3, “Arrancar y resolver problemas del servidor MySQL”.
Ejecutar algunas pruebas sencillas para comprobar que se puede traer información desde el servidor. La salida debería ser similar a lo que se muestra aquí:
shell> bin/mysqlshow +-----------+ | Databases | +-----------+ | mysql | | test | +-----------+ shell> bin/mysqlshow mysql Database: mysql +---------------------------+ | Tables | +---------------------------+ | columns_priv | | db | | func | | help_category | | help_keyword | | help_relation | | help_topic | | host | | proc | | procs_priv | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql +------+--------+------+ | host | db | user | +------+--------+------+ | % | test | | | % | test_% | | +------+--------+------+
            Hay un conjunto de pruebas de rendimiento en el directorio
            sql-bench (dentro del directorio de
            instalación de MySQL) que puede utilizarse para comparar el
            desempeño de MySQL en distintas plataformas. Este conjunto
            de pruebas está escrito en Perl. Utiliza el módulo Perl
            DBI para proporcionar una interface independiente de la base
            de datos a varias bases de datos, y algunos otros módulos
            adicionales de Perl también son requeridos para ejecutar
            las pruebas. Se deben tener los siguientes módulos
            instalados:
          
DBI DBD::mysql Data::Dumper Data::ShowTable
Estos módulos pueden ser obtenidos desde CPAN (http://www.cpan.org/). También, consulte Sección 2.13.1, “Instalación de Perl en Unix”.
            El directorio sql-bench/Results
            contiene los resultados de muchas ejecuciones a través de
            diferentes bases de datos y plataformas. Para ejecutar todos
            los tests, deben introducirse estos comandos:
          
shell> cd sql-bench shell> perl run-all-tests
            Si no se encuentra el directorio
            sql-bench, probablemente se ha
            instalado MySQL empleando otros ficheros RPM que no son el
            RPM de código fuente (El RPM de código fuente incluye el
            directorio de pruebas de rendimiento
            sql-bench) En este caso, se deberá
            primero instalar el conjunto de pruebas de rendimiento antes
            de poder utilizarlo. Para MySQL 5.0, hay un RPM separado con
            pruebas de rendimiento llamado
            mysql-bench-
            que contiene el código de prueba y los datos.
          VERSION-i386.rpm
            Si se posee una distribución de código fuente, también
            hay pruebas en su subdirectorio tests.
            Por ejemplo, para ejecutar
            auto_increment.tst, debe ejecutarse
            este comando desde el directorio de más alto nivel en la
            distribución de código fuente:
          
shell> mysql -vvf test < ./tests/auto_increment.tst
            El resultado esperado del test se encuentra en el fichero
            ./tests/auto_increment.res.
          
En este punto, se debería tener el servidor en funcionamiento. Sin embargo, ninguna de las cuentas iniciales de MySQL tiene una contraseña, así que se les debe asignar empleando las instrucciones halladas en Sección 2.9.3, “Hacer seguras las cuentas iniciales de MySQL”.
        En MySQL 5.0, el procedimiento de instalación crea zonas
        horarias en la base de datos mysql. No
        obstante, se deben llenar las tablas en forma manual. Las
        instrucciones para hacerlo se encuentran en
        Sección 5.9.8, “Soporte de zonas horarias en el servidor MySQL”.
      
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

