我该如何解决这个错误?
错误:SQLSTATE[HY000] [1698] 拒绝访问用户'root'@'localhost'(SQL:select count(*) as aggregate from
users
where
我正在使用Ubuntu操作系统
请帮忙解决
我该如何解决这个错误?
错误:SQLSTATE[HY000] [1698] 拒绝访问用户'root'@'localhost'(SQL:select count(*) as aggregate from
users
where
我正在使用Ubuntu操作系统
请帮忙解决
首先以root身份登录:
$ sudo mysql -u root
然后创建或更改非root用户(如果需要,请使用'127.0.0.1'代替'localhost'):
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'adminspassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
FLUSH PRIVILEGES;
退出并重新启动:
exit
$sudo service mysql restart
$sudo service apache2 restart
并编辑 .env 文件:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3630
DB_DATABASE=yourdbname
DB_USERNAME=admin
DB_PASSWORD=adminspassword
MySQL会区分“localhost”和“127.0.0.1”。可能出现 'root'@'localhost' 不允许登录的情况,因为用户表中有一条记录只允许从 127.0.0.1 登录 root。
这也可以解释为什么服务器上的某些应用程序可以连接到数据库,而有些应用程序不能连接,因为连接到数据库的方式不同。您当前不允许通过“localhost”进行连接。
我知道现在时间有点晚了,但是我一直在寻找答案,却找不到任何东西,最终得到了这个答案。
$sudo mysql -u root
[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;
[mysql] \q
现在你应该能够以root身份登录。 感谢this帖子中的@Matematikisto
UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('password'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
修改密码及其格式的完整步骤在此处: MySQL:如何重置或更改MySQL root密码?
*.env
文件后,运行php artisan config:clear
和php artisan cache:clear
来将配置文件重置为新值。 - stanley mbote