MySQL Administración

Iniciar y cerrar el servidor MySQL

En el sistema Windows

Iniciar el servidor MySQL:

1, Mediante la herramienta de administración "Servicios":Abra el cuadro de diálogo "Ejecutar" (Win + R), escribaservices.msc, busque el servicio "MySQL", haga clic derecho y seleccione "Iniciar".

2. Mediante el símbolo del sistema:Abra el símbolo del sistema (como administrador) y escriba el siguiente comando:

net start mysql

Cerrar el servidor MySQL:

1, Mediante la herramienta de administración "Servicios":De igual manera, abra el cuadro de diálogo "Ejecutar", escriba services.msc, busque el servicio "MySQL", haga clic derecho y seleccione "Detener".

2, Mediante el símbolo del sistema:Abra el símbolo del sistema (como administrador) y escriba el siguiente comando:

net stop mysql

En el sistema Linux

1. Iniciar el servicio de MySQL:

Use elsystemdcomando (aplicable a la mayoría de las distribuciones modernas de Linux, como Ubuntu, CentOS, etc.):

sudo systemctl start mysql

Use elservicecomando (en algunas distribuciones más antiguas):

sudo service mysql start

2. Cerrar el servicio de MySQL:

Use systemd:

sudo systemctl stop mysql

Use el comando service:

sudo service mysql stop

3. Reiniciar el servicio de MySQL:

Use systemd:
sudo systemctl restart mysql

Use el comando service:

sudo service mysql restart

4. Verificar el estado del servicio de MySQL:

Use el comando systemd:

sudo systemctl status mysql

Use el comando service:

sudo service mysql status

En el sistema Mac OS

Iniciar el servicio de MySQL:

Mediante la línea de comandos:

sudo /usr/local/mysql/support-files/mysql.server start

Cerrar el servicio de MySQL:

Mediante la línea de comandos:

sudo /usr/local/mysql/support-files/mysql.server stop

Reiniciar el servicio de MySQL:

Mediante la línea de comandos:

sudo /usr/local/mysql/support-files/mysql.server restart

Verificar el estado del servicio de MySQL:

Mediante la línea de comandos:

sudo /usr/local/mysql/support-files/mysql.server status

En los comandos anteriores, mysql puede variar según la ruta de instalación o la versión.

En Mac OS, la ruta de instalación de MySQL suele ser /usr/local/mysql/, por lo que para iniciar y cerrar el servicio de MySQL se debe utilizar el script mysql.server ubicado en esta ruta.


Configuración de usuarios de MySQL

En MySQL, la configuración de usuarios incluye operaciones como crear usuarios, establecer privilegios y administrar usuarios. A continuación se presentan algunas operaciones comunes de configuración de usuarios de MySQL, incluyendo crear usuarios, establecer privilegios, ver y eliminar usuarios, etc.

Crear usuario

Para crear un nuevo usuario, puede utilizar el siguiente comando SQL:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • username: nombre de usuario.
  • host: especifica desde qué hosts puede conectarse el usuario. Por ejemplo,localhostsolo permite la conexión local,%permite la conexión desde cualquier host.
  • password: la contraseña del usuario.

Ejemplo

CREATE USER 'john'@'localhost' IDENTIFIED BY 'password123';

Otorgar privilegios

Después de crear el usuario, debe otorgarle privilegios de acceso, use elGRANTcomando para otorgar privilegios:

GRANT privileges ON database_name.* TO 'username'@'host';

  • privileges: los privilegios necesarios, comoALL PRIVILEGES、SELECT、INSERT、UPDATE、DELETEetc.
  • database_name.*: indica otorgar privilegios sobre una base de datos o tabla específica.database_name.*indica otorgar privilegios sobre todas las tablas de una base de datos,database_name.table_nameindica otorgar privilegios sobre una tabla específica.
  • TO 'username'@'host': especifica el usuario y el host a los que se otorgan los privilegios.

Ejemplo

GRANT ALL PRIVILEGES ON test_db.* TO 'john'@'localhost';

Actualizar privilegios

Después de otorgar o revocar privilegios, es necesario actualizar los privilegios para que los cambios surtan efecto:

FLUSH PRIVILEGES;

Ver privilegios de usuario

Para ver los privilegios de un usuario específico, puede utilizar el siguiente comando:

SHOW GRANTS FOR 'username'@'host';

Ejemplo

SHOW GRANTS FOR 'john'@'localhost';

Revocar privilegios

Para revocar los privilegios de un usuario, utilice el comando REVOKE:

REVOKE privileges ON database_name.* FROM 'username'@'host';

Ejemplo

REVOKE ALL PRIVILEGES ON test_db.* FROM 'john'@'localhost';

Eliminar usuario

Si necesita eliminar un usuario, puede utilizar el siguiente comando:

DROP USER 'username'@'host';

Ejemplo

DROP USER 'john'@'localhost';

Cambiar la contraseña de usuario

Para cambiar la contraseña de un usuario, puede utilizar el comando ALTER USER:

ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

Ejemplo

ALTER USER 'john'@'localhost' IDENTIFIED BY 'newpassword456';

Cambiar el host del usuario

Para cambiar el host del usuario (es decir, desde qué hosts se permite la conexión), puede eliminar el usuario y luego crear uno nuevo.

Ejemplo

-- Eliminar el usuario antiguo
DROP USER 'john'@'localhost';

-- Recrear el usuario y especificar el nuevo host
CREATE USER 'john'@'%' IDENTIFIED BY 'password123';

Especificar privilegios al crear usuario

Al crear un usuario, también se pueden otorgar privilegios al mismo tiempo (en MySQL 8.0.16 y versiones posteriores):

Ejemplo

CREATE USER 'john'@'localhost' IDENTIFIED BY 'password123' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON test_db.* TO 'john'@'localhost';

Configuración del archivo /etc/my.cnf

El archivo /etc/my.cnf es el archivo de configuración de MySQL, utilizado para configurar varios parámetros y opciones del servidor MySQL.

En general, no es necesario modificar este archivo de configuración. La configuración predeterminada del archivo es la siguiente:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

En el archivo de configuración, puede especificar el directorio donde se almacenan los diferentes archivos de registro de errores. Generalmente no es necesario modificar estas configuraciones.

El archivo /etc/my.cnf puede variar según el sistema y la versión de MySQL, pero generalmente incluye las siguientes secciones:

1. Configuración básica

  • basedir: directorio de instalación básico del servidor MySQL.
  • datadir: ubicación donde se almacenan los archivos de datos de MySQL.
  • socket: ruta del archivo de socket Unix del servidor MySQL.
  • pid-file: ruta del archivo que almacena el ID de proceso del servidor MySQL en ejecución.
  • port: número de puerto en el que escucha el servidor MySQL, por defecto es 3306.

2. Opciones del servidor

  • bind-address: especifica la dirección IP en la que escucha el servidor MySQL; puede ser una dirección IP o un nombre de host.
  • server-id: en la configuración de replicación, establece un identificador único para cada servidor MySQL.
  • default-storage-engine: motor de almacenamiento predeterminado, por ejemplo InnoDB o MyISAM.
  • max_connections: número máximo de conexiones que el servidor puede mantener simultáneamente.
  • thread_cache_size: tamaño de la caché de subprocesos, utilizado para mejorar la velocidad de inicio de nuevas conexiones.
  • query_cache_size: tamaño de la caché de consultas, utilizado para mejorar la eficiencia de consultas idénticas.
  • default-character-set: conjunto de caracteres predeterminado.
  • collation-server: regla de ordenamiento (collation) predeterminada del servidor.

3. Ajuste de rendimiento

  • innodb_buffer_pool_size: tamaño del grupo de búferes del motor de almacenamiento InnoDB; este es uno de los parámetros más importantes en el ajuste de rendimiento de InnoDB.
  • key_buffer_size: tamaño del búfer de claves del motor de almacenamiento MyISAM.
  • table_open_cache: cantidad de caché de tablas que se pueden abrir simultáneamente.
  • thread_concurrency: número de subprocesos que se permiten ejecutar simultáneamente.

4. Configuración de seguridad

  • skip-networking: prohíbe que el servidor MySQL escuche conexiones de red; solo permite conexiones locales.
  • skip-grant-tables: inicia el servidor MySQL sin necesidad de contraseña; generalmente se usa para recuperar la contraseña de root olvidada, pero esto es un riesgo de seguridad.
  • auth_native_password=1: habilita la autenticación de contraseña nativa de MySQL 5.7 y versiones posteriores.

5. Configuración de registros (logs)

  • log_error: ruta del archivo de registro de errores.
  • general_log: registra todas las conexiones y consultas de los clientes.
  • slow_query_log: registra las consultas lentas cuyo tiempo de ejecución supera un umbral específico.
  • log_queries_not_using_indexes: registra las consultas que no utilizan índices.

6. Configuración de replicación

  • master_hostymaster_user: dirección del servidor maestro y usuario de replicación.
  • master_password: contraseña del usuario de replicación.
  • master_log_fileymaster_log_pos: archivo de registro y posición utilizados para la replicación.

Comandos para administrar MySQL

A continuación se enumeran los comandos de uso común en el proceso de trabajo con la base de datos MySQL:

  • USE Nombre de la base de datos :
    Seleccione la base de datos MySQL sobre la que se va a operar. Después de usar este comando, todos los comandos MySQL se aplicarán únicamente a esa base de datos.

    mysql> use EJEMPLO;
    Database changed
    
  • SHOW DATABASES:
    Muestra la lista de bases de datos del sistema de gestión de bases de datos MySQL.

    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | EJEMPLO             |
    | cdcol              |
    | mysql              |
    | onethink           |
    | performance_schema |
    | phpmyadmin         |
    | test               |
    | wecenter           |
    | wordpress          |
    +--------------------+
    10 rows in set (0.02 sec)
    
  • SHOW TABLES:
    Muestra todas las tablas de la base de datos especificada. Antes de usar este comando, se debe usar el comando `use` para seleccionar la base de datos sobre la que se va a operar.

    mysql> use EJEMPLO;
    Database changed
    mysql> SHOW TABLES;
    +------------------+
    | Tables_in_ejemplo |
    +------------------+
    | employee_tbl     |
    | ejemplo_tbl       |
    | tcount_tbl       |
    +------------------+
    3 rows in set (0.00 sec)
    
  • SHOW COLUMNS FROM Tabla de datos:
    Muestra los atributos de la tabla, el tipo de atributo, la información de la clave primaria, si es NULL, el valor predeterminado y otra información.

    mysql> SHOW COLUMNS FROM ejemplo_tbl;
    +-----------------+--------------+------+-----+---------+-------+
    | Field           | Type         | Null | Key | Default | Extra |
    +-----------------+--------------+------+-----+---------+-------+
    | ejemplo_id       | int(11)      | NO   | PRI | NULL    |       |
    | ejemplo_title    | varchar(255) | YES  |     | NULL    |       |
    | ejemplo_author   | varchar(255) | YES  |     | NULL    |       |
    | submission_date | date         | YES  |     | NULL    |       |
    +-----------------+--------------+------+-----+---------+-------+
    4 rows in set (0.01 sec)
    
  • SHOW INDEX FROM Tabla de datos:
    Muestra la información detallada de los índices de la tabla, incluida la clave primaria (PRIMARY KEY).

    mysql> SHOW INDEX FROM ejemplo_tbl;
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | Table      | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    | ejemplo_tbl |          0 | PRIMARY  |            1 | ejemplo_id   | A         |           2 |     NULL | NULL   |      | BTREE      |         |               |
    +------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
    1 row in set (0.00 sec)
    
  • SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G:
    Este comando muestra el rendimiento y las estadísticas del sistema de gestión de bases de datos MySQL.

    mysql> SHOW TABLE STATUS  FROM EJEMPLO;   # 显示数据库 EJEMPLO 中所有表的信息
    
    mysql> SHOW TABLE STATUS from EJEMPLO LIKE 'ejemplo%';     # 表名以ejemplo开头的表的信息
    mysql> SHOW TABLE STATUS from EJEMPLO LIKE 'ejemplo%'\G;   # 加上 \G,查询结果按列打印
    

Demostración en GIF:

Otras extensiones