Estou em um Mac OS Yosemite usando o Laravel 5.0.
Enquanto estiver no ambiente local , corro php artisan migrate
, continuo recebendo:
Acesso negado para o usuário 'homestead' @ 'localhost' (usando a senha: YES)
Configuração
Aqui está o meu .env
APP_ENV=local
APP_DEBUG=true
APP_KEY=*****
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
app \ config \ database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'homestead'),
'username' => env('DB_USERNAME', 'homestead'),
'password' => env('DB_PASSWORD', 'secret'),
'unix_socket' => '/tmp/mysql.sock',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
Como evito esse tipo de erro?
Eu tentei :
1
em app / database.php
Substitua localhost
por127.0.0.1
'host'=> env('DB_HOST', 'localhost')
->'host' => env('DB_HOST', '127.0.0.1')
Além disso, em .env
DB_HOST=localhost
-> DB_HOST=127.0.0.1
2
Tente especificar ambiente
php artisan migrate --env=local
3
Verifique se o MySQL está rodando por execução
mysqladmin -u homestead -p status Enter password: secret
Eu tenho
Uptime: 21281 Threads: 3 Questions: 274 Slow queries: 0 Opens: 327 Flush tables: 1 Open tables: 80 Queries per second avg: 0.012
O que significa que está funcionando.
4
Verifique o soquete do MySQL UNIX ( esta etapa funciona para mim )
Respostas:
O motivo do Acesso negado para o erro 'larest' do usuário @ laravel 5 'localhost' é o problema de armazenamento em cache do arquivo .env.php porque o Laravel 5 está usando uma configuração baseada em ambiente no seu arquivo .env.
1 . Vá para o diretório raiz do aplicativo e abra o arquivo .env (no ubuntu pode estar oculto, pressione ctrl+ hpara mostrar os arquivos ocultos e, se você estiver no terminal, digite:
ls -a
para mostrar os arquivos ocultos) no seu editor e altere a configuração do banco de dados. salve o arquivo .env2 . em seguida, reinicie o servidor apache / servidor web. e atualize sua página e você fez
3 . Se o problema persistir, tente executar o comando abaixo para limpar o antigo arquivo de cache de configuração.
Agora você terminou o erro
fonte
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
._..env
econfig:clear
cache:clear
todos os comandos, reiniciei,apache
mas ainda estava recebendo o mesmo problema.TLDR: você precisa parar o servidor Ctrl+ ce iniciar novamente usando
php artisan serve
Detalhes:
Se você estiver usando o Laravel e já tiver iniciado o servidor dev local,
php artisan serve
E depois de já ter o servidor acima em execução, você altera as coisas relacionadas ao servidor de banco de dados no arquivo .env. Como mudar do MySQL para SQLite ou algo assim. Você precisa ter certeza de que para acima do processo,
Ctrcl C
ou qualquer coisa que o interrompa. E, em seguida, reinicie o Artisan Serve novamente ou seja,php artisan serve
atualize o navegador e o problema relacionado ao banco de dados será corrigido. Isto é o que funcionou para mim no Laravel 5.3fonte
Duas maneiras de resolvê-lo
Primeira via (Não recomendado)
Abra o arquivo de configuração do banco de dados (laravel_root / config / database.php) e procure o bloco de código abaixo.
Mude o bloco de código como abaixo
Segunda via (Recomendado pela Laravel)
Verifique sua raiz do Laravel, se houver uma chamada de arquivo .env, se não existir, procure por .env.example, copie / renomeie-a como .env depois que o arquivo parecer danificado!
Modifique o bloco abaixo como a seguir
Agora vai funcionar bem.
fonte
root/config/database.php
parece redundante.se você estiver usando
php artisan migrate
NOT da caixa vagrant, mas da máquina host, deverá definir dentro.env
do ip da caixa192.168.10.10
e, obviamente, definir permissão para homestead usuário do seu ip algo como
no
.env
arquivofonte
grant all privileges on *.* to 'homestead'@'localhost' identified by 'secret';
funcionou para mim.Se você estiver usando o servidor web padrão do PHP (por exemplo
php artisan serve
), precisará reiniciar o servidor após alterar os valores do arquivo .env.fonte
verifique esta discussão em laracasts ou esta postagem no blog para obter mais detalhes
se você está recebendo
tente alterar "host" no arquivo /app/config/database.php de "localhost" para "127.0.0.1". Você pode encontrar mais detalhes e outras correções aqui neste tópico .
Verifique também se você especificou o correto
unix_socket
. verifique esta discussão .fonte
Verifique o soquete do MySQL UNIX
Encontre a localização do unix_socket usando o MySQL
mysql -u homestead -p
Então eu vou para config / database.php
Eu atualizo esta linha:
'unix_socket' => '/tmp/mysql.sock',
para :
'unix_socket' => '/var/run/mysqld/mysqld.sock',
É isso aí. Ele funciona para a minha quarta tentativa. Espero que essas etapas ajudem alguém. : D
fonte
Eu tive o mesmo problema e, no final, acabou precisando reiniciar o servidor e começar de novo
Ctrl+ centão
fonte
No PC com Windows, siga abaixo.
Acesse a pasta raiz do seu aplicativo.
Edite o arquivo .env
Edite o destaque e altere o nome de usuário e a senha e o nome do banco de dados de acordo.
fonte
no meu caso, depois de reiniciar o servidor, o problema desapareceu.
saia / feche o comando "php artisan serve" e
execute novamente o comando "php artisan serve" .
fonte
Algum tempo no futuro. Tente limpar sua configuração primeiro
Feche todas as janelas do terminal / cmd e, em seguida, reinicie o terminal / CMD e isso deve eliminar a mensagem de erro. Veja se funciona.
fonte
após o config db reinicie o:
Se o serviço estiver ativo antes de definir a configuração do banco de dados.
fonte
Estou usando o laravel 5. * Eu acho que tenho uma chamada de arquivo
.env
na raiz do projeto que se parece com isso:E isso acabou de escrever a configuração do bd para que você possa excluir esses arquivos de configuração para que, em geral, assuma a configuração em / config ou defina sua configuração aqui.
Eu fiz o segundo e funciona para mim :)
fonte
Entendi! Faça login como root e conceda a homestead @ localhost os direitos de tudo.
Do seu terminal:
Agora, o usuário comum do homesteads tem acesso a todas as suas tabelas e, como tal, deve poder executar coisas como migrações.
fonte
Após alterar .env com a nova configuração, você deve parar o servidor e executá-lo novamente (php artisan serve). Causa O laravel obtém o ambiente ao inicializar o servidor. Se você não reiniciar, alterará o .env se perguntando por que as alterações não estão ocorrendo !!
fonte
Tudo o que você precisa fazer é alterar o arquivo .env .
Na frente de DB_DATABASE, escreva o nome do banco de dados e, na frente de DB_USERNAME, use root .
fonte
Eu só queria postar isso porque esse problema me frustrou por cerca de três horas hoje. Eu não tentei nenhum dos métodos listados nas outras respostas, embora todos pareçam razoáveis. Na verdade, eu estava prestes a tentar percorrer cada uma das soluções propostas acima, mas de alguma forma recebi esse golpe de inspiração. Aqui está o que funcionou para eu voltar a trabalhar - YMMV:
1) Encontre o seu arquivo .env. 2) Renomeie seu arquivo .env para outra coisa. O Laravel 5 deve estar usando esse arquivo como uma substituição para configurações em outro lugar da estrutura. Renomeei o meu para .env.old 3) Pode ser necessário reiniciar o servidor da Web, mas não foi necessário.
Boa sorte!
fonte
Você precisa executar o
$ php artisan migrate
comando no Homestead, não no seu Mac.fonte
MBP-bheng-aveniors
. Essa não é sua VM. Você precisa fazer o SSH em Homestead ($ homestead ssh
) e depois executar a$ php artisan migrate
partir dessa sessão do SSH.Verifique seu arquivo " .env " na pasta raiz. está correto?
fonte
eu encontrei solução
Vá para o diretório raiz do aplicativo e abra o arquivo .env (no ubuntu pode estar oculto, pressione ctrl + h para mostrar os arquivos ocultos) no seu editor e altere a configuração do banco de dados. salve o arquivo .env
em seguida, reinicie o servidor apache / servidor web. e atualize sua página e você fez
Isso funcionou para mim gl ...
fonte
basta alterar essas coisas no arquivo .env da sua pasta raiz.
Funcionou para mim.
fonte
no meu caso (laravel 5+), tive que agrupar minha senha entre aspas simples e limpar o cache de configuração:
e então execute:
fonte
Entre no MYSQL - use o banco de dados mysql.
Selecione * do usuário;
Verifique se sua coluna HOST está correta. Deve ser o host do qual você está se conectando (seu servidor de aplicativos), seja o endereço IP ou o nome DNS. Também '%' funcionará (significando curinga), mas não será seguro.
fonte
Verifique o seu arquivo .env, se você editou alguma das variáveis, reinicie o servidor laravel e seu problema será resolvido.
fonte
A. Depois de atualizar o arquivo .env com as configurações do banco de dados, limpe a configuração larval "executando php artisan config: clear"
B. Certifique-se de reiniciar o servidor apache / execute novamente o comando "php artisan serve" para que suas configurações entrem em vigor.
fonte
Eu tive o mesmo problema usando o SQLite. Meu problema era que DB_DATABASE estava apontando para o local do arquivo errado.
Crie o arquivo sqlite com o comando touch e produza o caminho do arquivo usando o php artisan tinker.
Em seguida, imprima esse caminho exato para a variável DB_DATABASE.
Sem o caminho correto, você receberá o erro de acesso negado
fonte
Se você tiver um erro ao retornar algo como,
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
é porque você está alterando sua configuração do batabase comoDB_DATABASE=laravelu
. Então, por enquanto você:DB_DATABASE=
[yourdatabase]
laravelu
em seu phpmyadminisso deve ser capaz de resolvê-lo
fonte
No meu caso, o erro foi "causado" pela minha configuração Homestead / Vagrant sobre a qual eu esqueci :) tentando executar a migração apenas na linha de comando.
No caso de usar o ambiente Homestead Vagrant Box, você deve executar sua migração a partir da sua máquina Homestead (depois de conectar-se a ela usando ssh:)
[email protected]:22
, os direitos de acesso serão válidos e permitirão a migração.fonte
Da sua pergunta, parece que você está executando o homestead. Nesse caso, verifique se você está executando os comandos na sua VM. Muitos desenvolvedores, inclusive eu, frequentemente cometem erros e executam comandos artesanais fora da VM, os quais tentarão se conectar ao nosso banco de dados local acessível através do host local, que é diferente do banco de dados usado pelo homestead. Faça o CD no diretório Homestead e execute
depois cd no código, se é aí que você mantém seus projetos e o cd no seu projeto e executa
php artisan migrate again
. Espero que isso ajude outras pessoas.fonte