Compartilhamento de tecnologia

Como abrir vários bancos de dados MySQL no Linux e definir senhas e portas individualmente

2024-07-12

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

Em sistemas Linux, por padrão o MySQL (ou MariaDB, um fork popular do MySQL) não suporta diretamente a execução de múltiplas instâncias do MySQL na mesma máquina, com cada instância usando uma porta diferente e um sistema de senha independente. No entanto, você pode fazer isso configurando múltiplas instâncias do MySQL (também conhecidas como multi-instâncias). Isso geralmente envolve a configuração de diferentes portas, diretórios de dados, arquivos de configuração e possivelmente permissões de usuário para cada instância.

Aqui estão as etapas básicas para configurar várias instâncias do MySQL:

1. Preparação

Certifique-se de ter uma instalação do MySQL funcionando. Este guia pressupõe que você esteja usando MySQL, mas se estiver usando MariaDB, as etapas são muito semelhantes.

2. Crie um novo diretório de dados

Crie um novo diretório de dados para cada instância do MySQL:

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

aqui/data/mysql1e/data/mysql2são os diretórios de dados de duas instâncias diferentes.

3. Copie e modifique o arquivo de configuração

O arquivo de configuração padrão do MySQL geralmente é/etc/my.cnf(ou/etc/mysql/my.cnf , dependendo da sua distribuição). Você precisa criar um novo arquivo de configuração para cada instância.

  • Copie o modelo de perfil (se não existir, você pode criá-lo a partir da configuração padrão):
sudo cp /etc/my.cnf /etc/mysql1.cnf
sudo cp /etc/my.cnf /etc/mysql2.cnf
  • Modifique as seguintes seções de cada arquivo de configuração:

    • [mysqld]Configurações na seçãodatadirpara diretórios de dados recém-criados (por exemplo/data/mysql1ou/data/mysql2)。
    • Definir diferenteport(Por exemplo, a primeira instância usa 3306, a segunda instância usa 3307).
    • Você também pode precisar definirsocketcaminhos, certificando-se de que sejam únicos.
    • (opcional) configuraçõesuserelog_errore outras opções para garantir que a instância seja executada de forma independente.

4. Inicialize o diretório de dados (se ainda não estiver inicializado)

Para novas instâncias do MySQL, você precisa inicializar o diretório de dados.Isso geralmente envolve corrermysqld --initializeoumysql_install_db (Dependendo da sua versão do MySQL). Observe que isso pode substituir quaisquer dados existentes.

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

5. Inicie a instância MySQL

Você precisa escrever um script de inicialização para cada instância ou usarsystemd arquivos de unidade para gerenciá-los. Isso geralmente é complexo e precisa ser personalizado com base nas necessidades específicas e no ambiente do sistema.

Uma abordagem simplificada é usarmysqld_safeOu execute diretamente da linha de comandomysqld, mas isso não é adequado para ambientes de produção.

6. Defina senhas e permissões

Cada instância possui uma senha root padrão após a inicialização (MySQL 5.7.6 e posterior). Você precisa definir senhas e permissões de usuário independentes para cada instância.

  • Faça login em cada instância (usando--sockete--portopções).
  • usarALTER USERinstrução para definir a senha root.
  • Crie um novo usuário e autorize-o.

7. Manutenção e monitoramento

Certifique-se de ter estratégias adequadas de monitoramento e backup para manter suas múltiplas instâncias do MySQL.

Perceber

  • As etapas acima são uma visão geral de alto nível e podem precisar ser adaptadas ao seu ambiente específico.
  • A execução de múltiplas instâncias do MySQL pode aumentar a complexidade do sistema e o consumo de recursos.
  • Certifique-se de que o firewall do sistema e a configuração de rede permitam acesso a cada instância a partir da porta apropriada.