I am a student and current building a web application for my project.
While trying to host my Laravel application to Heroku my biggest problem at the moment is with the app failing to connect to the MSSQL database, I am using the MSSQL addon for Heroku.
it shows the error when I try to run the app via the App link
"could not find driver (SQL: select top 1 * from [sessions] where [id] = [idstring])"
I've had a similar issue before while setting up the app to run on local. Solved that by downloading the needed drivers on my local system. Now I am lost as to how to do the same for the hosted app on Heroku
Your config/database.php should look something like:
'sqlsrv' => [
'driver' => 'sqlsrv',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
]
Related
The Laravel log file reports an error with the configuration. I am configuring the WP database in the .env as being pointed out in the official docs.
The error I got in the Laravel logs:
[2019-08-06 10:23:44] local.ERROR: Database [corcel] not configured.
{"exception":"[object] (InvalidArgumentException(code: 0): Database
[corcel] not configured. at
/Applications/MAMP/htdocs/platform/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:152)
In the config/database.php I have a separate connection for Corcel:
'corcel' => [ // for WordPress database (used by Corcel)
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_WP_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => 'wp_',
'strict' => false,
'engine' => null,
],
...and in the config/corcel.php file I have this line:
'connection' => 'corcel',
...that corresponds to the connection added in config/database.php
The configuration in the .env file I added the WordPress database which should be the source for Corcel:
DB_WP_DATABASE=my_wp_database
The rest of the .env file is the same and I still got no idea why is this throwing config error.
Your config may be cached, could you try running
php artisan config:clear
Is the error happening when you are trying access data? If so you need to specify the connection on your query.
DB::connection('corcel')->table('table_name')
If you are using MAMP, you may need to use unix_socket. In that case you can include unix_socket on the database config like,
'corcel' => [
.....
'unix_socket' => env('DB_SOCKET', ''),
.....
],
On the environment variable(.env file), you may need to use the following,
DB_SOCKET="/Applications/MAMP/tmp/mysql/mysql.sock"
I've just pushed a laravel application to an Ubuntu 16.04 VPS - the company is using SQL Server for record management - and I cannot get Laravel to connect to that database for authentication or anything else.
I'm getting errors that say that Laravel cannot find the drivers to connect.
I've searched in too many places.
There's no good tutorial that shows from start to finish, they're all using different packages and it's overwhelming.
Has anybody here successfully connected a laravel application (running on Ubuntu) to SQL Server?
I have managed using below configuration (on windows):
in .env file
DB_CONNECTION=sqlsrv
DB_HOST=hots
DB_PORT=1433
DB_DATABASE=dbname
DB_USERNAME=user
DB_PASSWORD=password
Database.php
'default' => env('DB_CONNECTION', 'sqlsrv'),
and in connections
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', ''),
'port' => env('DB_PORT', '1433'), // note the port
'database' => env('DB_DATABASE', ''),
'username' => env('DB_USERNAME', ''),
'password' => env('DB_PASSWORD', ''),
'prefix' => '',
],
everyone. I've recently encountered problems trying to deploy my laravel app to production-like server. So far I've been using it in homestead environment and everything was just fine.
My .env contains something like this:
APP_URL=http://public.server.url
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=myusername
DB_PASSWORD=mypassword
In mysql (running on port 3306) I've set up user 'myusername'#'localhost' with mypassword and indeed I can connect using
mysql -u myusername -p
Even 'php artisan migrate' command works and modifies my database properly.
config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'homestead'),
'username' => env('DB_USERNAME', 'myusername'),
'password' => env('DB_PASSWORD', 'mypassword'),
//'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
Problem is my http controllers don't behave correctly. I am getting 500 server error when sending requests on my routes (no matter how dummy logic they do) and 404 not found when trying to reach non-existing route. Also nothing is appended in the log file. So I am guessing as far as registering routes my app works, but right after that it fails. Any suggestions? I would really appreciate any tips.
I just started a new Laravel project and I am having some database connectivity problem. First of all, I have only the User model which comes with the package. It has a migration as well. I updated my env file for the database path like this:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel_project1
DB_USERNAME=root
DB_PASSWORD=''
The problem is, when I ran migrate command
php artisan migrate
It created those migrations in my database. But now when I am simply trying to do User::all(); I am having some trouble with this error:
SQLSTATE[HY000] [1045] Access denied for user 'homestead'#'localhost' (using password: YES) (SQL: select * from `users`)
I have even cleared my config cache with this command:
php artisan config:clear
I don't understand what's wrong.
EDIT:
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'port' => env('DB_PORT', '3306'),
'database' => 'laravel_project1',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
This seems to solve the problem but I don't understand why env file is not working as it is the recommended way I believe.
The way Laravel's database config works is reading the /config/database.php file, so if you wan't Laravel to read your configuration from your .env file, you just have to make some changes in the /config/database.php for example:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'laravel_project1'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
So now the /config/database.php file will read your .env file and if it fails to read it will have the default config (Which is the second argument of each env() function above...)
To close this question, as Vasil Gerginski said in comments below my question. Restarting solved the problem.
When artisan starts, it caches your config. So even if you change it, it won't take affect until you restart artisan server.
I am trying to connect PostgreSQL with Laravel 5.0 but facing exception "Could not Find Driver in PostgreSQL".
I have tried this solution but cannot connected with PostgreSQL
stackoverflow answer
My database.php config file is following
'default' => 'pgsql'
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forgeUser'),
'password' => env('DB_PASSWORD', '****'),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'port' => 5432,
]
PDO extensions are enabled in php.ini
extension=php_pdo.dll
extension=php_pdo_pgsql.dll
when i run following command
php artisan migrate
it gives error
[PDOException] could not find driver
Its working fine when we connect PostgreSQL with Core PHP.
is there any driver still missing in Laravel? Please guide me.
Thank You
You must be ssh'd into your homestead or vagrant box. Then try to migrate.