SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:否)(SQL:select * 来自`permissions` )
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select * from `permissions`)
我将我的项目上传到 C-panel 并在我的 env 文件中设置我的数据库连接,使用相同的设置对我来说没问题,但现在我不知道为什么会这样,这是错误:
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select *
from `permissions`)
这是我的 env 数据库文件设置:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=thermota_db
DB_USERNAME=thermota_user
DB_PASSWORD= { my password }
我不知道这个权限有误,是我的 permissions_table 吗?
为什么这个 table 出错?
运行 这个命令:
php artisan config:cache
您正在尝试使用不同的用户,这意味着您的根值未被使用。
您需要缓存您的 env 字段以使用其中的值。这也适用于您所做的每项更改。
可能有多种原因。
- 当服务器在更新 .ENV 文件上的数据库详细信息之前已经启动时,可能会发生这种情况。
- 也可能是因为输入了错误的数据库身份验证详细信息。
解决方案
- 每当您更新 .ENV 文件上的值时重新启动服务器。
- 确保您使用正确的身份验证详细信息,或者最好还是创建一个新的数据库用户。
如果您在在线服务器上,请执行以下步骤:
1 - locate to : /vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php
2 - add thoes line of code on the begining of this function : createConnection($dsn, array $config, array $options)
3 - code to add : \Artisan::call('config:cache');
4 - refresh ur home page
5 - remove the "\Artisan::call('config:cache');" line code
6 - enjoye ^^
我有同样的问题,我无法 运行 "config:cache" artisan 命令,即使
Artisan::call('config:cache');
所以我这样做并解决了我的问题:
artisan config:cache 将 /config 中的所有文件缓存到它存储的单个数组中。然后它从该数组中读取所有配置变量并忽略 .env 或 /config 文件中的任何内容,直到您重新缓存它们。这就是为什么删除 .env.
后它仍然有效的原因
https://laravel.com/docs/5.6/configuration#configuration-caching
如果您没有 ssh 访问您的实时服务器,您只需要删除 bootstrap/cache/config.php 文件,这是 config:cache 生成的缓存文件.
我将我的项目上传到 C-panel 并在我的 env 文件中设置我的数据库连接,使用相同的设置对我来说没问题,但现在我不知道为什么会这样,这是错误:
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select *
from `permissions`)
这是我的 env 数据库文件设置:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=thermota_db
DB_USERNAME=thermota_user
DB_PASSWORD= { my password }
我不知道这个权限有误,是我的 permissions_table 吗?
为什么这个 table 出错?
运行 这个命令:
php artisan config:cache
您正在尝试使用不同的用户,这意味着您的根值未被使用。
您需要缓存您的 env 字段以使用其中的值。这也适用于您所做的每项更改。
可能有多种原因。
- 当服务器在更新 .ENV 文件上的数据库详细信息之前已经启动时,可能会发生这种情况。
- 也可能是因为输入了错误的数据库身份验证详细信息。
解决方案
- 每当您更新 .ENV 文件上的值时重新启动服务器。
- 确保您使用正确的身份验证详细信息,或者最好还是创建一个新的数据库用户。
如果您在在线服务器上,请执行以下步骤:
1 - locate to : /vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php
2 - add thoes line of code on the begining of this function : createConnection($dsn, array $config, array $options)
3 - code to add : \Artisan::call('config:cache');
4 - refresh ur home page
5 - remove the "\Artisan::call('config:cache');" line code
6 - enjoye ^^
我有同样的问题,我无法 运行 "config:cache" artisan 命令,即使 Artisan::call('config:cache');
所以我这样做并解决了我的问题:
artisan config:cache 将 /config 中的所有文件缓存到它存储的单个数组中。然后它从该数组中读取所有配置变量并忽略 .env 或 /config 文件中的任何内容,直到您重新缓存它们。这就是为什么删除 .env.
后它仍然有效的原因https://laravel.com/docs/5.6/configuration#configuration-caching
如果您没有 ssh 访问您的实时服务器,您只需要删除 bootstrap/cache/config.php 文件,这是 config:cache 生成的缓存文件.