mysql -u root ERROR 1698 (28000): Access denied for user 'root'@'localhost'
时间: 2023-10-02 11:12:08 浏览: 39
这个错误是由于MySQL的验证类型auth_socket引起的。要解决这个问题,你可以按照以下步骤进行操作:
1. 使用sudo命令进入MySQL:sudo mysql
2. 进入mysql库:use mysql;
3. 修改root用户密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
4. 如果你想允许远程访问root用户,可以执行以下命令:
- 更新用户的Host字段:UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
- 刷新权限:flush privileges;
- 退出MySQL:exit;
5. 编辑MySQL配置文件mysqld.cnf:sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
6. 注释bind-address = 127.0.0.1这一行,在前面加上#符号。
7. 重启MySQL服务:sudo service mysql restart
这样你就能成功登录MySQL了。请确保替换命令中的密码为你自己的密码。
相关问题
mysql出现ERROR1698(28000):Access denied for user root@localhost
当MySQL提示ERROR 1698 (28000): Access denied for user ‘root’@'localhost’错误时,可以尝试以下两种方法解决:
1. 重启MySQL服务
输入以下命令重启MySQL服务:
```shell
service mysql restart
```
2. 修改MySQL配置文件
输入以下命令进入MySQL配置文件:
```shell
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
```
在[mysqld]这一块中加入skip-grant-tables,可以随便插入,不用太在意位置。然后输入:wq保存退出。最后再次重启MySQL服务即可:
```shell
service mysql restart
```
mysql -u root -p报错error 1698 (28000): access denied for user ‘root’@‘lo
MySQL -u root -p 出现错误 1698 (28000) 是因为该命令要求使用root用户身份去登录MySQL数据库,但是系统拒绝了root用户的访问权限。这通常是因为安全设置或者密码错误导致的。
要解决这个问题,我们可以通过以下步骤来尝试解决:
1. 确保输入的密码是正确的,尝试重新输入密码。
2. 确保root用户在本地是有访问权限的,可以通过在MySQL服务器上执行以下语句来检查:
SELECT user, host FROM mysql.user;
如果发现root用户没有指定为本地访问权限(host为'localhost'),可以通过以下语句来赋予本地访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
3. 如果是远程访问的话,需要确认root用户具有远程访问权限(host为 '%'),并且需要防火墙允许数据库端口访问。
4. 如果仍然无法解决问题,可以尝试重置root用户的密码,或者创建一个新的具有管理员权限的用户。
总之,MySQL -u root -p 报错error 1698 (28000) 是因为root用户被拒绝了访问权限,需要根据具体情况检查和调整数据库的访问权限设置。