为了账号安全,请及时绑定邮箱和手机立即绑定

SQLSTATE[HY000] [1045] 用户 'username'@

SQLSTATE[HY000] [1045] 用户 'username'@

PHP
缥缈止盈 2023-04-15 17:46:18
我知道这个问题有很多类似的问题,但没有一个能帮助我解决这个问题。我正在尝试将我的 EC2 实例上的 laravel 项目连接到我的 RDS 实例。我可以成功连接到 RDS 实例并在我使用时创建表:mysql -h ....rds.amazonaws.com -u cmadmin -p但是,我目前在运行时遇到以下错误php artisan migrate:In Connection.php line 664:  SQLSTATE[HY000] [1045] Access denied for user 'cmadmin'@'ec2_privateIP' (using password: YES) (SQL: select * from information_schema.tables where table_schema = dbname_cm and table_name = migrations)In Connector.php line 67:  SQLSTATE[HY000] [1045] Access denied for user 'cmadmin'@'ec2_privateIP' (using password: YES)这是 .env 文件的摘录:APP_NAME=LaravelAPP_ENV=localAPP_KEY=generatedkeyAPP_DEBUG=trueAPP_LOG_LEVEL=debugAPP_URL=http://localhostDB_CONNECTION=mysqlDB_HOST=....rds.amazonaws.comDB_PORT=3306DB_DATABASE=dbname_cmDB_USERNAME=cmadminDB_PASSWORD=rfL8zvXnMEzit02这是 config/database.php 文件的摘录:'mysql' => [    'driver' => 'mysql',    'host' => env('DB_HOST', ''),    'port' => env('DB_PORT', '3306'),    'database' => env('DB_DATABASE', ''),    'username' => env('DB_USERNAME', ''),    'password' => env('DB_PASSWORD', ''),    'unix_socket' => env('DB_SOCKET', ''),    'charset' => 'utf8mb4',    'collation' => 'utf8mb4_0900_ai_ci',    'prefix' => '',    'strict' => false,    'engine' => null,    'option'  => [        PDO::MYSQL_ATTR_SSL_CA => base_path('/var/mysql-cert/dbname_cm-db.pem')    ],],我什至将以下内容添加到app/Providers/AppServiceProvider.phppublic function boot()    {       Schema::defaultStringLength(191);    }我已经运行了: php artisan cache:clear php artisan config:clear php artisan config:cachePHP 7.2.24-0ubuntu0.18.04.4 Laravel 框架 5.5.49 AWS RDS:MySQL 8.0.17mysql> SELECT USER(),CURRENT_USER();+------------------------+----------------+| USER()                 | CURRENT_USER() |+------------------------+----------------+| cmadmin@ec2_privateIP  | cmadmin@%      |+------------------------+----------------+
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

    'driver' => 'mysql',

    'host' => env('DB_HOST', ''),

    'port' => env('DB_PORT', '3306'),

    'database' => env('DB_DATABASE', ''),

    'username' => env('DB_USERNAME', ''),

    'password' => env('DB_PASSWORD', ''),

    'unix_socket' => env('DB_SOCKET', ''),

    'charset' => 'utf8mb4',

    'collation' => 'utf8mb4_0900_ai_ci',

    'prefix' => '',

    'strict' => false,

    'engine' => null,

    'option'  => [

        PDO::MYSQL_ATTR_SSL_CA => base_path('/var/mysql-cert/dbname_cm-db.pem')

    ],

],```


have you already try file this part `'username' => env('DB_USERNAME', ''),` with `'username' => env('DB_USERNAME', 'cmadmin'),`


and of course the DB_PASSWORD part with your predefined password



查看完整回答
反对 回复 2023-04-15
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

我通过在 database.php 文件中添加以下代码解决了这个问题


'mysql' = [

'sslmode' => 'require',

'options'   => array(

            PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,

            PDO::MYSQL_ATTR_SSL_KEY => '/certs/client-key.pem',

            PDO::MYSQL_ATTR_SSL_CERT => '/certs/client-cert.pem',

            PDO::MYSQL_ATTR_SSL_CA => '/certs/ca.pem',

        )

],


查看完整回答
反对 回复 2023-04-15
  • 2 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信