【Mysql学习】mysql远程连接:ERROR 1130 (HY000): Host '*.*.*.*' is not allowed to connect to this MySQL server解决办法
安装完MySQL后,远程连接数据库的时候,出现如下错误:
ERROR 1130 (HY000): Host '192.168.0.1' is not allowed to connect to this MySQL server
提示信息不能远程连接数据库,考虑可能是因为系统数据库mysql中user表中的host是localhost的原因,于是尝试把这个值改为当前服务器的ip地址,可以连接,但用 mysql -u root -p命令仍旧无法连接上数据库,需要用mysql -h 服务器ip -u root -p,因为默认的连接mysql数据库user表中host的值,而这个命令的默认host是localhost,就连不上。
具体操作方法:
1、更新。
用localhost连接上mysql后,
use mysql;
update user set host='123.456.789.254';(IP为你想要远程连接数据库的本地机器的IP)
\q;
退出mysql,然后重新启动mysql即可。
其他解决方案:
2、改表。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>flush privileges;
mysql>select host, user from user;
3、授权。
例如,想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.0.1' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
***********************************************************************
phpMyAdmin报的是用户名密码的问题,但是root用户名密码正常,而且通过命令行连接没有问题。又仔细查看配置文件,还是没有问题。
这个解决方法如下:
先用root登录MYSQL服务器,执行
mysql>set password for 想要用的用户名@"localhost"=old_password('这个用户的密码');
原因是使用的mysql服务器版本中使用了新的密码验证机制,需要客户端的版本要在4.0以上,原来的密码函数被改为old_password();,这样使用password()生成的密码在旧的版本上就可以解决此问题.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!