AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-324882

FromLake's questions

Martin Hope
FromLake
Asked: 2025-01-20 14:06:03 +0800 CST

Como iniciar instâncias mariadb/mysql na inicialização?

  • 5

Tenho um arquivo /etc/mysql/mysqld_multi_cls.cnf com tudo o que o mariadb precisa para múltiplas instâncias de banco de dados.

Posso iniciar essas instâncias com o seguinte comando:

sudo mariadbd-multi --defaults-file=/etc/mysql/mysqld_multi_cls.cnf start  

 

Mas não consigo encontrar uma maneira (legal) de iniciar essas instâncias na inicialização.

Adicionar o arquivo .cnf na pasta /conf.d/ não inicia a instância, a menos que eu esteja fazendo alguma besteira sem saber. O banco de dados está rodando em um Raspberry pi5, Raspberry Pi OS, que é baseado em Debian. E eu sou bem desinformado/novato com Linux.

Após solicitação, aqui está o arquivo .cnf:

# Configuration Settings for mysqld_multi , as well as separate instances. 
#
[mysqld_multi]
mysqld       = /usr/bin/mariadbd-safe
mysqladmin   = /usr/bin/mariadb-admin

[mysqld2]
socket          = /tmp/mysql.sock2
port            = 3307
pid-file        = /usr/local/mysql/mdb2/ansible-host1.pid2
datadir         = /var/lib/mysql2
log-error       = /var/log/mysql2/error.log
log-bin             = /var/log/mysql2/mdb2-mysql-bin.log
server-id               = 2
expire-logs-days    = 72
sync_binlog              = 1
innodb_flush_log_at_trx_commit  = 1
innodb_flush_method = O_DIRECT      
binlog_format                 = mixed
gtid_strict_mode            = 1

[mysqld3]
socket          = /tmp/mysql.sock3
port            = 3308
pid-file        = /usr/local/mysql/mdb3/ansible-host1.pid3
datadir         = /var/lib/mysql3
log-error       = /var/log/mysql3/error.log
log-bin             = /var/log/mysql3/mdb3-mysql-bin.log
server-id               = 3
expire-logs-days    = 64
sync_binlog     = 1
innodb_flush_log_at_trx_commit  = 1
innodb_flush_method = O_DIRECT  
binlog_format       = mixed
gtid_strict_mode    = 1

[mysqld4]
socket          = /tmp/mysql.sock4
port            = 3309
pid-file        = /usr/local/mysql/mdb4/ansible-host1.pid4
datadir         = /var/lib/mysql4
log-error       = /var/log/mysql4/error.log
log-bin             = /var/log/mysql4/mdb4-mysql-bin.log
server-id               = 4
expire-logs-days    = 64
sync_binlog     = 1
innodb_flush_log_at_trx_commit  = 1
innodb_flush_method = O_DIRECT  
binlog_format       = mixed
gtid_strict_mode    = 1
mysql
  • 1 respostas
  • 38 Views
Martin Hope
FromLake
Asked: 2025-01-16 11:42:00 +0800 CST

Instância extra do MariaDB ou mysql no Debian Linux não funciona quando altero um nome durante a configuração

  • 5

-- EDITAR -- Conclua a configuração na resposta abaixo. -- EDITAR --

Quando sigo um artigo (link abaixo) sobre como configurar um MariaDB ou Mysql extra no Linux, e funciona. No entanto, não gosto dos nomes "mysql1" e "mysql2" para nomes de instância. Mas quando altero apenas esse aspecto do código, o servidor não instala quando executo o comando start.

Eu escrevi ambas as configurações aqui abaixo para facilitar a comparação: A que funciona onde 2 instâncias estão sendo feitas, e a que no final das contas não funciona. Eu adoraria muito descobrir como fazer a que não funciona, funcionar. Sua ajuda é muito apreciada!

- 1) Datadir (configuração que funciona):

sudo mkdir -p -v /var/lib/mysql{1..2}
sudo chown mysql:mysql -v /var/lib/mysql{1..2}

- 1) Datadir (configuração que não funciona):

sudo mkdir -p -v /var/lib/mysqlTest
sudo chown mysql:mysql -v /var/lib/mysqlTest

- 2) Diretório de soquetes (configuração que funciona):

sudo mkdir -p -v /usr/local/mysql/mdb{1..2}
sudo chown -v -R mysql:mysql /usr/local/mysql/mdb{1..2}

- 2) Diretório de soquete (configuração que não funciona):

sudo mkdir -p -v /usr/local/mysql/mdbTest
sudo chown -v -R mysql:mysql /usr/local/mysql/mdbTest

- 3) Diretório de log (configuração que funciona):

sudo mkdir -p -v /var/log/mysql{1..2}
sudo chown -v -R mysql:mysql /var/log/mysql{1..2}

- 3) Diretório de log (configuração que não funciona):

sudo mkdir -p -v /var/log/mysqlTest
sudo chown -v -R mysql:mysql /var/log/mysqlTest

- 4) Eu crio o seguinte arquivo

"mysqld_multi_cls.cnf"

Localizado em: /etc/mysql/

- 5) conteúdo (configuração que funciona):

# Configuration Settings for mysqld_multi , as well as separate instances. 
#
[mysqld_multi]
mysqld       = /usr/bin/mysqld_safe
mysqladmin   = /usr/bin/mysqladmin

[mysqld1]
socket          = /tmp/mysql.sock1
port            = 3307
pid-file        = /usr/local/mysql/mdb1/ansible-host1.pid1
datadir         = /var/lib/mysql1
log-error       = /var/log/mysql1/error.log
log_bin         = /var/lib/mysql1/mdb1-mysql-bin.log
server-id       = 1
expire_logs_days = 72
sync_binlog     = 1
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT      
binlog_format       = mixed
gtid_strict_mode    = 1

[mysqld2]
socket          = /tmp/mysql.sock2
port            = 3308
pid-file        = /usr/local/mysql/mdb2/ansible-host1.pid2
datadir         = /var/lib/mysql2
log-error       = /var/log/mysql2/error.log
log-bin         = /var/lib/mysql2/mdb2-mysql-bin.log
server-id       = 2
expire_logs_days = 64
sync_binlog     = 1
innodb_flush_log_at_trx_commit  = 1
innodb_flush_method             = O_DIRECT  
binlog_format                   = mixed
gtid_strict_mode                = 1

- 5) conteúdo (configuração que, no final das contas, não funciona):

# Configuration Settings for mysqld_multi , as well as separate instances. 
#
[mysqld_multi]
mysqld       = /usr/bin/mysqld_safe
mysqladmin   = /usr/bin/mysqladmin

[mysqlTest]
socket          = /tmp/mysql.sock3
port            = 3309
pid-file        = /usr/local/mysql/mdbTest/ansible-host1.pid3
datadir         = /var/lib/mysqlTest
log-error       = /var/log/mysqlTest/error.log
log_bin         = /var/lib/mysqlTest/mdbTest-mysql-bin.log
server-id       = 3
expire_logs_days = 72
sync_binlog     = 1
innodb_flush_log_at_trx_commit  = 1
innodb_flush_method             = O_DIRECT      
binlog_format                   = mixed
gtid_strict_mode                = 1

-6) E agora iniciamos o servidor:

sudo mysqld_multi --defaults-file=/etc/mysql/mysqld_multi_cls.cnf --log=/etc/mysql/multi_ins.log start      
  • Se feito da primeira vez, o banco de dados agora está sendo instalado e todos ficam felizes.
  • Mas se feito no 2º solar, onde eu apenas alterei o nome e criei uma única instância (extra), nada acontece.

O que estou perdendo?

Abraços e muito obrigado!

Aqui está o artigo no Linkedin por Michael Amadi: https://www.linkedin.com/pulse/running-multiple-instances-mariadb-single-server-different-amadi

mysql
  • 1 respostas
  • 32 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve