Problem when using query

Asked

Viewed 73 times

0

I’m having the following problem when using some query in my Laravel. I wondered this IP 192.168.1.1, in my file . env put 192.168.1.31 where is located my database.

Does anyone know what might be going on? Follow below error and codes.

[2019-07-12 14:08:03] Local.ERROR: SQLSTATE[HY000] [1045] Access denied for user '[my user]'@'192.168.1.1' (using password: YES) {"Exception":"[Object] (Pdoexception(code: 1045): SQLSTATE[HY000] [1045] Access denied for user 'sul'@'192.168.1.1' (using password: YES) at /var/www/html/apilivezilla/vendor/Laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68) [stacktrace]

File . env

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:hTtALqjgM1jBb5iNKxebWlem2l+mrPr67ywq4Ab38mw=
APP_DEBUG=true
APP_URL=http://[MEU IP]

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_PORT=3306
DB_DATABASE=[meu db]
DB_USERNAME=[meu usuario]
DB_PASSWORD=[minha senha]
DB_HOST=192.168.1.31


BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

database.php file (I don’t think you’re influencing)

<?php

return [

/*
|--------------------------------------------------------------------------
| Default Database Connection Name
|--------------------------------------------------------------------------
|
| Here you may specify which of the database connections below you wish
| to use as your default connection for all database work. Of course
| you may use many connections at once using the Database library.
|
*/

'default' => env('DB_CONNECTION', 'mysql'),

/*
|--------------------------------------------------------------------------
| Database Connections
|--------------------------------------------------------------------------
|
| Here are each of the database connections setup for your application.
| Of course, examples of configuring each database platform that is
| supported by Laravel is shown below to make development simple.
|
|
| All database work in Laravel is done through the PHP PDO facilities
| so make sure you have the driver for your particular database of
| choice installed on your machine before you begin development.
|
*/

'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix' => '',
    ],

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '192.168.1.31'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', '[meu db]'),
        'username' => env('DB_USERNAME', '[meu usuario]'),
        'password' => env('DB_PASSWORD', '[minha senha]'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

    'pgsql' => [
        'driver' => 'pgsql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '5432'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'prefix' => '',
        'schema' => 'public',
        'sslmode' => 'prefer',
    ],

    'sqlsrv' => [
        'driver' => 'sqlsrv',
        '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' => '',
    ],

],

/*
|--------------------------------------------------------------------------
| Migration Repository Table
|--------------------------------------------------------------------------
|
| This table keeps track of all the migrations that have already run for
| your application. Using this information, we can determine which of
| the migrations on disk haven't actually been run in the database.
|
*/

'migrations' => 'migrations',

/*
|--------------------------------------------------------------------------
| Redis Databases
|--------------------------------------------------------------------------
|
| Redis is an open source, fast, and advanced key-value store that also
| provides a richer set of commands than a typical key-value systems
| such as APC or Memcached. Laravel makes it easy to dig right in.
|
*/

'redis' => [

    'client' => 'predis',

    'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => 0,
    ],

],

];

  • Is the bank local or networked? If it’s local, it’s probably not 127.0.0.1? Or localhost?

  • The bank is networked. In two other banks I have here are local and work normally. This is another server.

1 answer

2


The most important thing to note in the error message:

Access denied for user '[meu usuario]'@'192.168.1.1' (using password: YES)

This error indicates that the user in question is not allowed to access the database, this may occur for some reasons:

  1. There is an error in your file . env and you must enter the correct database name, user and password in the variables DB_DATABASE, DB_USERNAME, DB_PASSWORD, respectively.
  2. The user who is trying to access is not allowed to access the database remotely, using the 192.168.1.31 for connection your user uses the network to connect externally.
  3. Mysql database configuration does not receive remote connections.

Create user for remote connection

CREATE USER 'novousuario'@'%' IDENTIFIED BY 'senha';
GRANT ALL PRIVILEGES ON 'seubanco'.* TO 'novousuario'@'%';
FLUSH PRIVILEGES;

Accept remote connections in Mysql (on an Ubuntu 18.04)

Edit the file mysqld.cnf

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Change the bind-address of:

#bind-address            = 127.0.0.1

To:

bind-address            = 0.0.0.0

Restart Mysql

sudo systemctl restart mysql
  • Note that item 2, when creating the user in Mysql we say if his connection is only local or from a specific source or any source, by default the user root connects only locally.

  • Thanks for your help, I’ll analyze.

  • I was surprised by the error that he showed 192.168.1.1 being that I put in the file 192.168.1.31. I thought he might not be getting the configuration.

  • Don’t ignore it, maybe the file. env is not loading, knowing more of your stack is important, but if you are using the built-in server that goes up with the artisan, restart it every time you change an environment variable

Browser other questions tagged

You are not signed in. Login or sign up in order to post.