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

Acesso negado ao MySQL via console do Pod

Olá à todos, tudo bem? Estou com um probleminha que pelo jeito ninguém passou. Estou acessando o Pod de banco de dados via terminal com o comando "kubectl exec -it statefulset-mysql-0 sh", quando tento conectar no MySQL com o comando "mysql -u root" ele está negando acesso como no log abaixo:

mysql -u root

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Pesquisei um pouco e algumas soluções dizem para parar o serviço do MySQL, iniciar novamente com a flag --skip-grant-tables option, executar um FLUSH PRIVILEGES e depois setar a senha com SET PASSWORD FOR 'root'@'localhost' = PASSWORD(''), mas quando eu tento parar o serviço via terminal do Pod com um comando "/etc/init.d/mysql stop" ele me desconecta do terminal conforme abaixo:

/etc/init.d/mysql stop

...command terminated with exit code 137

Alguém tem alguma sugestão?

Abaixo segue o conteúdo do meu arquivo statefulset.yaml:

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: statefulset-mysql
spec:
  serviceName: db
  template:
    metadata:
      labels:
        name: mysql
    spec:
      containers:
        - name: container-mysql
          image: mysql:5.7.19
          ports:
            - containerPort: 3306
          env:
            - name: MYSQL_DATABASE
              value: "loja"
            - name: MYSQL_USER
              value: "root"
            - name: MYSQL_ALLOW_EMPTY_PASSWORD
              value: "1"
          volumeMounts:
            - name: volume-mysql
              mountPath: /var/lib/mysql
      volumes:
        - name: volume-mysql
          persistentVolumeClaim:
            claimName: configuracao-mysql
4 respostas

Oi Cristiano,

Manda seu servico-banco.yaml e permissoes.yaml por favor

servico-banco.yaml:

apiVersion: v1
kind: Service
metadata:
  name: db
spec:
  type: ClusterIP
  ports:
    - port: 3306
  selector:
    name: mysql

permissoes.yaml:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: configuracao-mysql
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi
solução!

Otávio, consegui solucionar o meu problema, revi identação de todos os arquivos, no meu arquivo servico-banco.yaml eu tinha um espaço e colocado um comentário do lado do ClusterIP, algo como "type: ClusterIP #comentário". Removi o comentário e tentei novamente recriar o cluster do 0. Para zerar o cluster dei o comando "minikube delete" e recriaei tudo novamente e funcionou. Obrigado por ajudar.

Perfeito Cristiano, obrigado por compartilhar a solução com a galera =)

Abraço e bons estudos!