Access denied for user ‘root‘@‘localhost‘的错误解决

当在Ubuntu上安装MySQL后,系统默认未设置root用户的密码。这会导致尝试连接数据库时出现'Access denied for user 'root'@'localhost''的错误。解决方法是通过SHELL环境进入mysql,然后使用ALTER USER命令为root用户设置新的密码,例如可以设置为'root'。对于MySQL和MariaDB,设置密码的命令有所不同。设置完密码后,可以验证数据库连接是否成功。

正常情况下ubuntu安装mysql 是没有设置密码的,这个时候连接数据库是会报错的;

        Access denied for user 'root'@'localhost'

进入mysql然后设置root用户的密码即可;

# SHELL环境下进入mysql
sudo mysql
#进入mysql后,修改密码为root,可以换成别的密码

# for MySQL
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

#for MariaDB
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('root');

进行以下测试,数据库连接成功。 

 

"Access denied for user root@localhost"错误通常表示在尝试连接到MySQL数据库时,使用的用户名和密码不正确或者没有足够的权限。这个错误可能有以下几个原因和解决方法: 1. 用户名或密码错误:请确保输入的用户名和密码是正确的,特别是root用户的密码。可以尝试重新设置密码或者创建一个新的具有足够权限的用户。 2. 权限不足:如果使用的是root用户,但仍然遇到权限问题,可能是因为MySQL服务器配置了访问限制。可以通过修改MySQL配置文件(通常是my.cnf或my.ini)来解决。找到并编辑以下行: ``` bind-address = 127.0.0.1 ``` 将其注释掉或者修改为: ``` bind-address = 0.0.0.0 ``` 然后重启MySQL服务。 3. 远程访问权限:如果你正在尝试从远程主机连接到MySQL服务器,并且遇到了该错误,可能是因为MySQL服务器没有配置允许远程访问。可以通过以下步骤解决: - 登录到MySQL服务器。 - 运行以下命令以授予远程访问权限: ``` GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; ``` 其中,'root'是用户名,'%'表示允许来自任何主机的连接,'password'是密码。可以根据需要修改这些值。 - 运行以下命令以刷新权限: ``` FLUSH PRIVILEGES; ``` - 重启MySQL服务。 4. 防火墙阻止连接:如果你的服务器上启用了防火墙,可能会阻止MySQL的连接。请确保防火墙允许MySQL的入站连接。 希望以上解决方法能帮助你解决"Access denied for user root@localhost"错误
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七咔七咔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值