Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Kubernetes erro no container projeto_db_1 (my_sql)

Ao montar o arquivo yaml e subir os containers o mysql não executa. Não sei como proceder de acordo com o log de erro, parece ser um problema na pasta var/www.

yaml>>>>>>>>>>>>>>>>>>>>>>>>>>>

version: "3.0"
services:
  db:
    image: mysql:5.7.19
    environment:
      - MYSQL_DATABASE=loja
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - C:/Users/evert/Desktop/Alura/Engenheiro DevOps/Kubernets/Projeto/volume_mysql:/var/lib/mysql  
  web:
    image: rafanercessian/aplicacao-loja:v1
    ports:
      - 8080:80
    depends_on:
      - db

saida do console>>>>>>>>>>>>>>>>>>>>>

a4257c8c2e1c        mysql:5.7.19                       "docker-entrypoint.s…"   About a minute ago   Exited (1) 41 seconds ago                          projeto_db_1

log do container >>>>>>>>>>>>>>>>>>>>>>>>

Initializing database
mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists)
2019-02-12T22:15:02.484003Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2019-02-12T22:15:02.484385Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
2019-02-12T22:15:02.485176Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-02-12T22:15:02.495010Z 0 [ERROR] Aborting
9 respostas

Boa noite Everton Oliveira. Teria como colocar o código yaml completo, facilita para analisar. Abraços!

Segue o yaml

version: "3.0"
services:
  db:
    image: mysql:5.7.19
    environment:
      - MYSQL_DATABASE=loja
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - C:/Users/evert/Desktop/Alura/Engenheiro DevOps/Kubernets/Projeto/volume_mysql:/var/lib/mysql  
  web:
    image: rafanercessian/aplicacao-loja:v1
    ports:
      - 8080:80
    depends_on:
      - db

Erro na saida do console

a4257c8c2e1c mysql:5.7.19 "docker-entrypoint.s…" About a minute ago Exited (1) 41 seconds ago projeto_db_1

Log do erro

 Initializing database mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists) 2019-02-12T22:15:02.484003Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000) 2019-02-12T22:15:02.484385Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000) 2019-02-12T22:15:02.485176Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2019-02-12T22:15:02.495010Z 0 [ERROR] Aborting

version: "3" services: db: image: mysql:5.7 environment:

  - MYSQL_DATABASE=loja
  - MYSQL_USER=root
  - MYSQL_ALLOW_EMPTY_PASSWORD=yes
volumes:
  - C:/Users/evert/Desktop/Alura/EngenheiroDevOps/Kubernets/Projeto/volume_mysql:/var/lib/mysql  

web: image: rafanercessian/aplicacao-loja:v1 ports:

  - 8080:80
depends_on:
  - db

no caminho do mapeamento do seu volume tem um espaço entre as palavras "Engenheiro DevOps", se estives separado também nos seu diretório, coloque um h-ifen ou junte.

Talvez resolva, qualquer coisa poste o erro

Abraços

Ola. Alterei o caminho conforme abaixo:

version: "3.0"
services:
  db:
    image: mysql:5.7.19
    environment:
      - MYSQL_DATABASE=loja
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - C:\Users\evert\Desktop\Projeto\volume_mysql:/var/lib/mysql
  web:
    image: rafanercessian/aplicacao-loja:v1
    ports:
      - 8080:80
    depends_on:
      - db

Mas continuo com o mesmo erro

C:\Users\evert\Desktop\Projeto
λ  docker logs b8
Initializing database
mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists)
2019-02-13T23:00:15.460496Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2019-02-13T23:00:15.461274Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
2019-02-13T23:00:15.462083Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-02-13T23:00:15.478654Z 0 [ERROR] Aborting

Seu sistema é o windows, certo? E o docker não roda muito bem com o windows, se puder utilizar linux seria melhor a sua experiência com o Docker. Mas vamos lá!

mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists) => esta linha informa que não pode criar porque o arquivo já existe.

2019-02-13T23:00:15.462083Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. => informa que o TIMESTAMP um valor default implicito que está depreciado e pede para rotar esse comando: --explicit_defaults_for_timestamp

Qualquer coisa de uma olhada na documentação do TIMESTAMP ou coloque no google.

pare e exclua tudo! use: docker ps (para exibir containers rodando) docker rm -f (para e destrói)

docker ps -a (para exibir containers parados) docker container prune (destrói todos que estão parados)

depois faça tudo com calma passo a passo e usa a versão 5.6 do mysql.

Abraços!

Existe alguma configuração em meu computador pessoal que esta derrubando o mysql. Em meu computador no trabalho funciona normalmente, sendo que os requisitos de sistema são os mesmos. Abaixo, apos o warning, o serviço sobe. Alguma sugestão??

λ  docker logs 500
2019-02-19T11:28:58.234655Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2019-02-19T11:28:58.234841Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
2019-02-19T11:28:58.989881Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-02-19T11:28:59.033197Z 0 [Note] mysqld (mysqld 5.7.19) starting as process 1 ...
CONTAINER ID        IMAGE                              COMMAND                  CREATED              STATUS              PORTS                  NAMES
abaa11347ac4        rafanercessian/aplicacao-loja:v1   "docker-php-entrypoi…"   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp   testeproj_web_1
500e46f8679d        mysql:5.7.19                       "docker-entrypoint.s…"   2 minutes ago        Up About a minute   3306/tcp               testeproj_db_1

Boa tarde! Esse problema está relacionado a versão do mysql que você está usando, que está deprecated e o no seu trabalho pode ser diferente ou estar configurado.

Tente este tópico: https://stackoverflow.com/questions/15701636/how-to-enable-explicit-defaults-for-timestamp

eu utilizei a versão 5.6 do mysql e deu certo,mas acho que este tópico vai te ajudar.

Ola. Alterei a versão conforme abaixo:

version: "3.0"
services:
  db:
    image: mysql:5.6
    environment:
      - MYSQL_DATABASE=loja
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - C:\Users\evert\Desktop\Alura\TesteMysql\volume_mysql:/var/lib/mysql       
  web:
    image: rafanercessian/aplicacao-loja:v1
    ports:
      - 8080:80
    depends_on:
      - db   

Estou recebendo o seguinte erro: InnoDB: Operating system error number 13 in a file operation. The error means mysqld does not have the access rights to the directory. Encontrei alguma informação no link abaixo, mas não serviu para solucionar o erro: https://stackoverflow.com/questions/27733269/innodb-operating-system-error-number-13-in-a-file-operation-not-fixed-after-cha

C:\Users\evert\Desktop\Alura\TesteMysql
λ  docker ps -a
CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS                       PORTS                  NAMES
90e8dec0b2f8        rafanercessian/aplicacao-loja:v1   "docker-php-entrypoi…"   3 minutes ago       Up 3 minutes                 0.0.0.0:8080->80/tcp   testemysql_web_193e968457786        mysql:5.6                          "docker-entrypoint.s…"   4 minutes ago       Exited (141) 3 minutes ago                          testemysql_db_1 C:\Users\evert\Desktop\Alura\TesteMysql
λ  docker logs 93
Initializing database
2019-02-24 18:13:27 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-02-24 18:13:27 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2019-02-24 18:13:27 0 [Note] /usr/sbin/mysqld (mysqld 5.6.43) starting as process 36 ...
2019-02-24 18:13:27 36 [Warning] Can't create test file /var/lib/mysql/93e968457786.lower-test
2019-02-24 18:13:27 36 [Warning] Can't create test file /var/lib/mysql/93e968457786.lower-test
2019-02-24 18:13:27 36 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2019-02-24 18:13:27 36 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)

2019-02-24 18:13:27 36 [Note] InnoDB: Using atomics to ref count buffer pool pages
2019-02-24 18:13:27 36 [Note] InnoDB: The InnoDB memory heap is disabled
2019-02-24 18:13:27 36 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-02-24 18:13:27 36 [Note] InnoDB: Memory barrier is not used
2019-02-24 18:13:27 36 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-02-24 18:13:27 36 [Note] InnoDB: Using Linux native AIO
2019-02-24 18:13:27 36 [Note] InnoDB: Using CPU crc32 instructions
2019-02-24 18:13:27 36 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2019-02-24 18:13:28 36 [Note] InnoDB: Completed initialization of buffer pool
2019-02-24 18:13:28 7f69725565c0  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
2019-02-24 18:13:28 7f69725565c0  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
2019-02-24 18:13:28 36 [ERROR] InnoDB: Creating or opening ./ibdata1 failed!
2019-02-24 18:13:28 36 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
2019-02-24 18:13:28 36 [ERROR] Plugin 'InnoDB' init function returned error.
2019-02-24 18:13:28 36 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-02-24 18:13:28 36 [ERROR] Unknown/unsupported storage engine: InnoDB
2019-02-24 18:13:28 36 [ERROR] Aborting

2019-02-24 18:13:28 36 [Note] Binlog end
2019-02-24 18:13:28 36 [Note] /usr/sbin/mysqld: Shutdown complete
solução!

Olá, consegui solucionar o problema. Hoje, 02/03/2019, fiz um upgrade da memoria RAM em meu notebook, de 4GB para 8GB. Desinstalei o Docker e instalei novamente seguindo os passos da aula: Docker: Criando containers sem dor de cabeça. Quando instalamos o Docker, por padrão, ele esta configurado para utilizar o linux containers. Tive um erro de "memoria insuficiente" e alterei para windows container na opção "Switch to Windows container" essa alteração quebrou o Hiper-V ... também tive que desabilitar e habilita-lo novamente. Quando citei no tópico que "em meu notebook do trabalho funcionava e, no de casa não" a quantidade de memoria era a unica diferença de configuração. Obrigado pela ajuda do fórum! , e espero ter contribuído também. Abs.