Compartir tecnología

Cómo abrir múltiples bases de datos mysql en Linux y configurar contraseñas y puertos individualmente

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

En los sistemas Linux, de forma predeterminada, MySQL (o MariaDB, una popular bifurcación de MySQL) no admite directamente la ejecución de múltiples instancias de MySQL en la misma máquina, y cada instancia utiliza un puerto diferente y un sistema de contraseña independiente. Sin embargo, puede lograr esto configurando múltiples instancias de MySQL (también conocidas como instancias múltiples). Por lo general, esto implica configurar diferentes puertos, directorios de datos, archivos de configuración y posiblemente permisos de usuario para cada instancia.

Estos son los pasos básicos para configurar múltiples instancias de MySQL:

1. Preparación

Asegúrese de tener una instalación de MySQL que funcione. Esta guía asume que estás usando MySQL, pero si estás usando MariaDB, los pasos son muy similares.

2. Cree un nuevo directorio de datos

Cree un nuevo directorio de datos para cada instancia de MySQL:

sudo mkdir -p /data/mysql1 /data/mysql2
sudo chown -R mysql:mysql /data/mysql1 /data/mysql2

aquí/data/mysql1y/data/mysql2son los directorios de datos de dos instancias diferentes.

3. Copie y modifique el archivo de configuración.

El archivo de configuración predeterminado para MySQL suele ser/etc/my.cnf(o/etc/mysql/my.cnf , dependiendo de su distribución). Debe crear un nuevo archivo de configuración para cada instancia.

  • Copie la plantilla de perfil (si no existe, puede crearla desde la configuración predeterminada):
sudo cp /etc/my.cnf /etc/mysql1.cnf
sudo cp /etc/my.cnf /etc/mysql2.cnf
  • Modifique las siguientes secciones de cada archivo de configuración:

    • [mysqld]Configuración en la seccióndatadirpara directorios de datos recién creados (p. ej./data/mysql1o/data/mysql2)。
    • Establecer diferenteport(Por ejemplo, la primera instancia usa 3306, la segunda instancia usa 3307).
    • Es posible que también necesite configurarsocketcaminos, asegurándose de que sean únicos.
    • configuración (opcional)userylog_errory otras opciones para garantizar que la instancia se ejecute de forma independiente.

4. Inicialice el directorio de datos (si aún no está inicializado)

Para nuevas instancias de MySQL, debe inicializar el directorio de datos.Esto generalmente implica corrermysqld --initializeomysql_install_db (Dependiendo de su versión de MySQL). Tenga en cuenta que esto puede sobrescribir cualquier dato existente.

sudo mysqld --initialize --user=mysql --datadir=/data/mysql1
sudo mysqld --initialize --user=mysql --datadir=/data/mysql2

5. Inicie la instancia de MySQL

Necesita escribir un script de inicio para cada instancia o usosystemd archivos unitarios para gestionarlos. Esto suele ser complejo y debe personalizarse según sus necesidades específicas y el entorno del sistema.

Un enfoque simplificado es utilizarmysqld_safeO ejecutar directamente desde la línea de comandomysqld, pero esto no es adecuado para entornos de producción.

6. Establecer contraseñas y permisos

Cada instancia tiene una contraseña de root predeterminada después de la inicialización (MySQL 5.7.6 y posteriores). Debe establecer contraseñas independientes y permisos de usuario para cada instancia.

  • Inicie sesión en cada instancia (usando--sockety--portopción).
  • usarALTER USERdeclaración para establecer la contraseña de root.
  • Crea un nuevo usuario y autorizalo.

7. Mantenimiento y seguimiento

Asegúrese de contar con estrategias de monitoreo y respaldo para mantener sus múltiples instancias de MySQL.

Aviso

  • Los pasos anteriores son una descripción general de alto nivel y es posible que deban adaptarse a su entorno específico.
  • La ejecución de varias instancias de MySQL puede aumentar la complejidad del sistema y el consumo de recursos.
  • Asegúrese de que el firewall de su sistema y la configuración de red permitan el acceso a cada instancia desde el puerto apropiado.