Laravel 5 database.php set to sqlite - artisan uses mysql - laravel

I seem to be having a problem with artisan reading the default config/database.php file.
When I run for php artisan migrate:status - or any other migration related commands I get
exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access
denied for user 'homestead'#'localhost' (using password: YES)'
even though the default database connection name is set to sqlite, which doesn't require credentials of any kind.
My .env has APP_ENV=local and I'm running it under the local environment with PHP 5.6.2 using Mamp.

After calling php artisan I've noticed there is a command to clear the configuration cache file php artisan config:clear - then run php artisan config:cache to cache it with the applied changes - which solved the problem.

Related

APP_URL not refreshing after a change

I'm building a Laravel 9 app using Docker.
I'm just starting, so I merely updated the APP_URL variable in the .env (from "http://localhost" to "http://mydomain.local").
After this, I ran the following commands:
php artisan cache:clear
php artisan config:clear
php artisan route:clear
composer dump-autoload
and I restarted the Docker container of the app.
Yet, when I access http://mydomain.local in my browser, the app doesn't load. It still loads properly when I user http://localhost as originally configured.
What am I missing?
This is because you probably didnt edit the vhost..
Just changing the APP_URL in the .env file doesnt change how the browser resolves a domain name.
See this thread to learn how to edit a vhost file: WAMP Server virtual hosts configuration

can't make migration in laravel by php artisan migrate command

when i write this command:
php artisan migrate
Laravel Provides Database migrations which don't work very well for me when i write this command:
php artisan migrate
it always give me this error
Change the .env file from 127.0.0.1 to localhost fixed it.
DB_HOST=localhost
do config:cache after .env file change. php artisan config:cache
Ensure you have an .env file, and that the database related variables within have been set correctly.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_username
DB_PASSWORD=your_database_password

why .env file configuration in laravel is not working

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=root
DB_PASSWORD=
this is my configuration for laravel 5.4
but php artisan migrate is not working and have error
and the migrate error
Users-MacBook-Pro: ATP Developers php artisan migrate
In Connection.php line 664:
SQLSTATE[HY000] [1045] Access denied for user ''#'localhost' (using password: NO) (SQL: select * from information_schema.tables where table schema = atp_db and table_name = migrations)
In Connector.php line 87:
SQLSTATE[HY000] [1045] Access denied for user ''#'localhost' (using password: NO)
I faced a similar problem. So, I run the following commands as mentioned at
https://laracasts.com/discuss/channels/general-discussion/env-file-and-config-keys-not-updating-after-change,
php artisan cache:clear
php artisan config:clear
php artisan route:clear
Also, make sure to restart the server as well
php artisan serve
you should write these:
DB_DATABASE = your database name
DB_USERNAME = root
DB_PASSWORD = your password
and again run php artisan serve to make sure about saving .env and again run php artisan migrate
Indeed I had the same problem, I can not explain why Laravel indicates the old Host but the solution is to change the password.
Use below => php artisan config:cache
Change env host entry to DB_HOST=localhost. Or add the #'127.0.0.1' credentials to mysql.
The error indicates that you do not have the correct user and host combination in your database. The env file shows host is 127.0.0.1 but localhost is specified in the error. Add user#localhost entry to the database or user#% for wildcard.
This error would indicate that you don't have a database user configured in your .env file: ''#'localhost' . Your .env should have all those fields populated with the database name and credentials you configured before running any function that connects to the database.
Here are the preliminary steps to setup your database and .env file prior to running a php artisan migrate:
Hope it helps.
Step 1: Login to your mysql and create the database.
mysql -u root -p
create database just_brew_it;
Step 2: Although you can use root to authenticate via laravel, I'd create a new user to mitigate risk of any security issues:
GRANT ALL PRIVILEGES ON just_brew_it.* TO 'brew_user'#'%' identified by 'pint0fStell#' WITH GRANT OPTION;
FLUSH privileges;
Step 3: Modify your .env with the appropriate database, username and password
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= just_brew_it
DB_USERNAME= brew_user
DB_PASSWORD= pint0fStell#
This combo worked for me:
php artisan clear-compiled
composer dump-autoload
php artisan optimize
I had the same issue and i couldnt run "config:cache" artisan command even with Artisan::call('config:cache');
so i done this and solved my issue:
artisan config:cache caches all files from /config into a single array that it stores. It then reads all config variables from that array and ignores anything in .env or the /config files until you recache them. That's why it still works after deleting .env.
https://laravel.com/docs/5.6/configuration#configuration-caching
If you don't have ssh access to your live server, you'd just need to delete the bootstrap/cache/config.php file, which is the cache file config:cache generates.

Can't change MAIL_DRIVER to mailgun in Laravel 5.4

I changed MAIL_DRIVER in .env file of production server like that:
MAIL_DRIVER=mailgun
MAIL_HOST=smtp.mailgun.org
MAILGUN_DOMAIN=mg.xx.com
MAILGUN_SECRET=key-xx
MAIL_ENCRYPTION=null
I run these commands also:
php artisan config:clear
php artisan config:cache
However, they did not change MAIL_DRIVER. Server continues to send mail via old MAIL_DRIVER. I got from controller env("MAIL_DRIVER"), and it gets nothing (NULL).
How can I solve this problem.
You will need to restart your server and/or just re run php artisan serve on local dev.

Laravel error with correct key lenghts

I was working with laravel (5.4), everything fine. I cannot remember modifying my .env file but the following error came up in every page:
(1/1) RuntimeException
The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.
I tried every possible answer found on github.
This we're the steps i made:
cp .env.example .env
php artisan key:generate
Application key [...] set successfully.
php artisan config:clear
Configuration cache cleared!
php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
php artisan cache:clear
Cache cleared successfully.
Also trying config:cache and then config:clear.
No results, error persists.
did you try to put
'cipher' => 'AES-256-CBC',
in your config/app.php ?

Resources