I install laravel 5.2 on Ampps (windows 10) with this tutorial.
it works.
But Now I want connect to mysql.
I create a 'test1' DB and change these two files:
config/database.php
mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'test1'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
.env
DB_HOST=localhost
DB_DATABASE=test1
DB_USERNAME=root
DB_PASSWORD=
After that I restart apache.
then in CMS I run this code:
F:\Ammps\www\quickstart>php artisan migrate
But I get this error:
error SQLSTATE[HY000] [1045] Access denied for user 'root'#'localhost'
I think I miss a step.
can please help me?
According to the Ampps FAQ you need the default mysql password:
1. Default MySQL root password is "mysql".
So add that to your .env file like this:
DB_HOST=localhost
DB_DATABASE=test1
DB_USERNAME=root
DB_PASSWORD=mysql
Related
I am using a MAMP server to host my laravel project. I am trying to push my database migrations table which I have created to the MAMP phpmyadmin database hosted on the localhost 8888 server.
However everytime I use the command , php artisan migrate I get this error:
SQLSTATE[HY000] [1045] Access denied for user 'root'#'localhost' (using password: YES) (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')
I have tried everything to change stuff in the .env file and the database.php file but nothing seems to be changing.
This is what my .env file looks like(only relevant parts):
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:H5A9PbNQk0we6UJnNzSZ68Y22B88SK6wCEq2wachQfE=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME="root"
DB_PASSWORD="temp"
UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
This is what my database.php file looks like:
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', 3306),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'temp'),
'unix_socket' => env( 'DB_SOCKET','/Applications/MAMP/tmp/mysql/mysql.sock'),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
Here is a picture of what the user accounts look like, what I have available:
Make sure u use the right username and password in phpmyadmin
And replace them in .env file and config/database.php file
Try running php artisan config:clear and also php artisan cache:clear.
If that won't help try and login to the database using command line or bash if the credentials work.
I'm trying to build an restful API.
When I make a call to one of my endpoints, I get following error message:
SQLSTATE[HY000] [1045] Access denied for user 'root'#'localhost' (using password: NO) (SQL: select * from users)
The wierd thing is why this error is showing up when I try to access the endpoint, but when I use db:seed, the database is populated with dummy-data and I can use migrations also to create the tables.
The user that is connecting to the db has full privileges.
Can anyone please help me out?
sometimes .env archive not reload for change... maybe you need run command php artisan config:cache
This is my settings in the .env for the database:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=
And this are the ones from 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', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
But as i understand it both the migrations, seeds and the api goes thru .env.
So for some reason I get this error in my browser when using Laravel. I feel like I got everything set up correctly:
This is my .env file:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ictinder
DB_USERNAME=root
DB_PASSWORD=secret
This is my database.php file:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'ictinder'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'secret'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
This is a screenshots from my phpMyAdmin, it's Dutch so if you don't understand something, let me know
This is what the error looks like in my browser
Thank you for taking your time to help out, or at least read my question!
EDIT 1:
I already tried php artisan cache:clear and php artisan config:clear, both didn't work. I can use php artisan migrate.
If you are using vagrant to run your project. you have to change your db port into 33060 and change your db username into homestead
if you are running your program using php artisan serve, your db port should be 3306 into your db username
see the docs laravel homestead
Hope this can help you
What you need to do in your case is to remove the ictinder from your database and also from your .eve file. then recreate the ictinder again from where it was been remove, it's adventurous to leave the empty DB_PASSWORD like this DB_PASSWORD=, if your MySQL does not have a password, also remember that
If you are using the PHP's default web server (e.g. php artisan serve) you need to restart your server after changing your .env file values.
newbie here. I try to run:
php artisan migrate
But I get these errors:
In Connection.php line 664:
SQLSTATE[HY000] [1045] Access denied for user 'homestead'#'localhost' (usin
g password: YES) (SQL: select * from information_schema.tables where table_
schema = homestead and table_name = migrations)
In Connector.php line 67:
SQLSTATE[HY000] [1045] Access denied for user 'homestead'#'localhost' (usin
g password: YES)
This is what is contained in my database.php and .env files respectively:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
My DB name is homestead and host is localhost yet it's still giving error messages.
And this is what it looks like in myPhpAdmin user accounts overview page:
How would I fix this?
If you are using homestead without any changes then the default host for the homestead machine is 192.168.10.10.
Change
DB_HOST=localhost
to
DB_HOST=192.168.10.10
Link to the Docs
This means that either your database username or password is wrong. If you are on windows the default DB_USERNAME is root and password is empty. Try correcting your configuration in .env file.
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.