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

erro no php migrate

estou criando um projeto mas quando utilizo o 'php artisan migrate' dá o erro abaixo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

usei os comandos abaixo mas quando uso o: php artisan cache:clear dá o erro da imagem abaixo php artisan config:clear php artisan cache:clear --> Predis\Connection\ConnectionException -- php_network_getaddresses: getaddrinfo for redis failed: Este host no conhecido. [tcp://redis:6379] php artisan view:clear php artisan route:clear composer dump-autoload

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

já pesquisei em diversos fóruns mas não consegui resolver, abaixo o meu github desse projeto. https://github.com/hnhostins/app-laravel

me dá um helpppppppppppppppppppp plsssssssssssssss

9 respostas

Boa noite Herlon,

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Sugiro que você verifique se o seu usuário tem permissão de acesso ao banco de dados ou se o mesmo está criado no gerenciador de banco de dados que você está usando, pois a mensagem de erro é de acesso negado para o usuário hnhostins@127.0.0.1.

Caso tenha resolvido a sua duvida, por favor marque a dúvida como resolvido. Se ocorrer outro erro pode postar aqui pra verificar.

Foi o q tentei durante dias resolver, acess denied tá bem claro que é permissão do usuário, mas como citei tem erro da classe do redis não achada q é um erro anterior. mas grato pela sua tentativa, mas isso tudo eu já verfiquei. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

outro ponto, tenho o php instalado, isso causa conflito? PS D:\PHP\projetos\Laradock\app-laravel> php -v PHP 8.1.10 (cli) (built: Aug 30 2022 18:08:04) (NTS Visual C++ 2019 x64) Copyright (c) The PHP Group Zend Engine v4.1.10, Copyright (c) Zend Technologies

Boa noite Herlon!

Sobre a parte do banco de dados, seria legal dar uma olhada para tentar resetar a senha do usuário, pelo que entendi "hnhostins" seria seria o "root" alterado, correto? No caso pode tentar esse cara aqui na própria doc do mysql, só bate direitinho a versão que está usando: https://dev.mysql.com/doc/mysql-windows-excerpt/5.7/en/resetting-permissions-windows.html

A parte do Redis não está sendo encontrado pode ser alguma extensão do php que não foi instalada ou ativada no php.ini da maquina, o mais provavel mesmo é a falta do "predis" como dependência no composer, tenta dar uma olhada nesse cara aqui: https://laracasts.com/discuss/channels/laravel/class-redis-not-found

Guilherme obrigado pelas dicas, do mysql ainda não resolvi pois foquei no redis, o arquivo php.ini eu já tinha visto os comandos q deveriam existir e estarem descomentados, então li o link q mandou e outros, e consegui resolver o problema abaixo seguindo os passos abaixo:

#erro class-redis-not-found -> 6, 1, 3, 4 e finalmente o 2 onde dava o erro que mostro a frente do comando

1- php artisan config:clear

2- php artisan cache:clear --> Predis\Connection\ConnectionException -- php_network_getaddresses: getaddrinfo for redis failed: Este host no conhecido. [tcp://redis:6379]

3- php artisan view:clear

4- php artisan route:clear

5- composer dump-autoload

6- docker pull redis:latest

agora vou tentar resolver o problema do mysql, mas só uma questão quando entro no workbech consigo fazer a conexão com o root e a senha cadastrada na instalação.

Boa noite, o problema com o mysql continua, apesar de ter feito os seguintes passos:

o erro no workbench de criar uma nova conexão sumiu ao dar o comando abaixo. 1- ALTER USER 'hnhostins'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '123456';

mas ao dar o comando php artisan migrate tanto na pasta do projeto como depois de entrar no container com o comando docker-compose exec app bash deram os erros das respectivas mensagens abaixo.

Espero q não demore uma semana, ou como já vi, nem resposta tem.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ahh acho que eu entendi mano. Você está rodando o seu laravel dentro do docker, o problema é que eu acho que a treta é que tem que configurar o docker-compose para acessa seu IP externo do banco "127.0.0.1" que está fora do docker, o problema é que eu não sei muito bem como fazer isso, até achei um link falando um pouco sobre.

O ideal mesmo, seria dentro do seu docker-compose a gente ter uma imagem de mysql e fazer um binding das portas, assim você pode acessar o ip interno do docker pelo host, o que acha?

Pode mostrar esse docker-compose.yml?

Fala Guilherme, grato pelo apoio, mas "acho" q as imagens estão todas no mesmo ip... segue o docker-compose.yml

version: "3.7"

services:
    # image project
    app:
        build:
            context: .
            dockerfile: Dockerfile
        restart: unless-stopped
        working_dir: /var/www/
        volumes:
            - ./:/var/www
        depends_on:
            - redis
        networks:
            - laravel

    # nginx
    nginx:
        image: nginx:alpine
        restart: unless-stopped
        ports:
            - "8989:80"
        volumes:
            - ./:/var/www
            - ./docker/nginx/:/etc/nginx/conf.d/
        networks:
            - laravel

    # db mysql
    mysql:
        image: mysql:5.7.22
        restart: unless-stopped
        environment:
            MYSQL_DATABASE: ${DB_DATABASE}
            MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
            MYSQL_PASSWORD: ${DB_PASSWORD}
            MYSQL_USER: ${DB_USERNAME}
        volumes:
            - ./.docker/mysql/dbdata:/var/lib/mysql
        ports:
            - "3388:3306"
        networks:
            - laravel

    # queue
    queue:
        image: especializati/laravel9-app
        restart: unless-stopped
        command: "php artisan queue:work"
        volumes:
            - ./:/var/www
        depends_on:
            - redis
            - app
        networks:
            - laravel

    # redis
    redis:
        image: redis:latest
        networks:
            - laravel

networks:
    laravel:
        driver: bridge

O .env

APP_NAME="Especializa Ti"
AP_ENV=local
APP_KEY=base64:slPx1EYlV1yJup6blqxqQnZfKwjq8EJbVBADMOv7dVk=
APP_DEBUG=true
APP_URL=http://localhost:8989

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=projeto1
DB_USERNAME=hnhostins
DB_PASSWORD=123456

CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

REDIS_CLIENT=predis
solução!

No caso você pode usar "localhost" ao invés do 127.0.0.1.. Fazer um teste, dá um recreate e coloca as variaveis do env: environment: MYSQL_DATABASE: ${DB_DATABASE} MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_USER: ${DB_USERNAME Como hardcoded, tipo environment: MYSQL_DATABASE: projeto1 MYSQL_ROOT_PASSWORD: 123456 MYSQL_PASSWORD: 123456 MYSQL_USER: hnhostins

Vamos tentar.

Olá guilherme ontem a noite eu tinha respondido mas o servidor da alura caiu...

então deu certo a sua sugestão agregada aos 4 comandos abaixo, eu testei entre localhost e o ip, mas fazia outras alterações, daí fui nessa sua linha de fazer, depois q mudei para localhost + os comandos deu certinho... valeuuuuuu

1- php artisan config:clear 2- php artisan cache:clear 3- php artisan view:clear 4- php artisan route:clear