转载:http://www.svennee.com/archives/4.html
在MYSQL 中,用远程软件登陆服务器,有时出现:Access denied for user 'root'@'localhost'
出现这种问题,主要的原因就是权限配置的时候 没有配置正确。
解决方法如下:
当用Linux/unix的tty 登陆进MYSQL 时, mysql -u root -p 会提示你输入密码,输入正确的密码后正常登陆。
然后在提示符下,打命令:show grants; 会出现root如下的权限表示:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '565491d704013245' WITH GRANT OPTION
此时,注意看那个“@”后面的,是localhost 意思是本机登陆,,此时,如果你用远程登陆软件来登陆的话,会出现错误提示:Access denied for user 'root'@'IP地址'。。IP地址那块是你远程机器的IP地址。也就是服务器在告诉你,当你用“IP地址”登陆时,是拒绝的,因为,MYSQL权限设置里并没有给你对应你IP地址登陆的权限。因为刚才的SHOW GRANTS;命令结果已经告诉你了,仅限本机登陆。
那解决方法如下:此时,你可以尝试用空密码连接,是可以连接进入的。或者你在服务器的tty 或者pts操作台中进入服务器后执行如下的命令:
grant all privileges on *.* to 'root'@'%' with grant option;
意思是让root在所有机器都可以登陆到MYSQL服务器(拥有所有权限)。当执行完这条命令后,用客户端登陆,此时,是需要输入口令了。
GRANT ALL PRIVILEGES
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
Sql代码
1. mysql -u root -pvmwaremysql>use mysql;
2. mysql>update user set host = '%' where user = 'root';
3. mysql>select host, user from user;
2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
Sql代码
1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH
GRANT OPTION;
2.FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
Sql代码
1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY
2. 'mypassword' WITH GRANT OPTION;
3. FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
Sql代码
1. GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY
2. 'mypassword' WITH GRANT OPTION;
3. FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意授权后必须FLUSH PRIVILEGES;否则无法立即生效。
另外一种方法.
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root
//这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
//赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦!
分享到:
相关推荐
在使用MySQL数据库时,有时会遇到“Access denied for user ‘root’@’%’ to database ‘xxx’”的错误,这通常表示当前用户没有足够的权限访问或操作指定的数据库。本文将详细介绍如何解决这一问题。 首先,让...
这里的`host`列指定了用户可以从哪些IP地址登录,`%`表示允许从任何地方远程登录。`user`列是用户名,`authentication_string`是存储密码的字段,而在MySQL 5.7.9之后,`password`字段和`password()`函数被弃用。`...
主要介绍了MySQL 可以用localhost 连接,但不能用IP连接的问题解决方法的相关资料,这里提供了解决方案,需要的朋友可以参考下
如果你在使用Navicat或其他工具时遇到1044或1045错误,上述方法应该能帮助你解决问题。但是,如果你遇到的是其他错误,比如1045 (28000) Access denied for user,可能需要检查用户名、密码是否正确,或者是否已正确...
MySQL的用户表中存储了每个用户的登录信息,包括允许该用户从哪些主机(或IP地址)进行连接。当`host`字段设置为“127.0.0.1”或“localhost”时,意味着该用户只能从本地主机访问MySQL服务器。 解决这个问题的方法...
如果遇到`Access denied for user: '@unknown' to database mysql`的错误,可能是因为主机名无法解析,此时需要更新`/etc/hosts`(Linux)或`\windows\hosts`(Windows)文件,并重启服务器。 4. **升级后的权限...
学习docker安装mysql我遇到很多坑,大约花了三天才解决掉这个问题,真的是太坎坷了,差点就放弃让我学习Java的心态了。首先往VM安装带有docker东西的虚拟机,查看ip地址是192.168.200.128.然后按照网上步骤docker ...
问题:一台服务器的PHP程序通过localhost地址无法连接数据库,但是如果设置为127.0.0.1则可以正常连接,连接其他数据库服务器也正常。MySQL的权限设置正确,且通过mysql命令行客户端可以正常连接数据库。 分析:这是...
`%`符号表示允许任何远程IP地址连接。完成授权后,执行`FLUSH PRIVILEGES;`以使更改立即生效,然后使用`EXIT;`退出MySQL。 3. **测试和配置远程连接**: - **确认MySQL端口**:默认情况下,MySQL监听3306端口。...
如果出现 提示”Access denied for user ‘root’@’localhost’ (using password: YES)” mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature...
在使用MySQL数据库时,有时会遇到“1045错误”,这是一个常见的访问权限问题,意味着用户无法连接到MySQL服务器,通常提示为“Access denied for user 'username'@'hostname' (using password: YES/NO)”。...
- 访问被拒绝,例如错误提示 `ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)`。 **解决方案:** 1. **确认用户名和密码:** 首先确认提供的用户名和密码是否正确。可以在...
连接问题也很常见,比如“Access denied for user 'root'@'localhost'”。这可能是由于未正确设置root用户的密码,或者MySQL的配置文件`my.cnf`中的bind-address配置不正确。确保你已经设置了正确的密码,并且bind-...
如果遇到“Access denied for user”的错误,检查你的防火墙设置,确保3306端口(默认MySQL端口)对远程连接开放,并检查MySQL的配置文件(通常为`my.cnf`)中的`bind-address`是否设置为0.0.0.0,这允许从所有IP...
- 参数:Access denied for user 'root'@'192.168.204.1' (using password: YES) - **成功连接示例**(假设存在): - 时间:190601 22:03:20 - ID:100 - 命令:Connect - 参数:root@192.168.204.1 on - ...
当尝试登录MySQL时遇到错误“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)”,意味着用户名或密码不正确,或者是没有提供密码。 在MySQL中,启动和停止服务分别使用: ``...
- **密码验证失败问题**:在尝试登录MySQL时可能会遇到“Access denied for user 'root'@'localhost'”错误。这通常是因为MySQL服务器配置了密码验证,而未提供正确的密码。解决方法是重新设置密码。 ```bash # ...
如果你遇到`Access denied for user: 'root@localhost'`的错误,可以直接以root用户身份登录: ``` sudo mysql -u root ``` 8. **创建新的root用户或普通用户** 如果不希望使用sudo直接登录,需要创建新用户并...
这个错误通常表示"Access denied for user",即用户无权访问,通常与认证失败有关。本文将深入探讨这个问题的原因,并提供详细的解决步骤。 1. **问题描述**: 当你尝试用`mysql -u root -p`命令登录MySQL服务器时...
- **错误信息**:“Access denied” - 这个错误通常意味着在主服务器上没有正确地为从服务器配置访问权限。 - 解决方案:重新检查`GRANT`语句中的用户名、密码以及权限是否正确配置,并确保在主服务器上执行了`...