今天搭建LAMP(Linux、apache、mysql、php)环境,由于mysql数据库和php不在同一台电脑上,apache连接mysql时报错。

查看mysql数据库下的user表

原来是mysql没有开启远程登录,只能在本地登录,由于对mysql不熟悉,上网找了写解决方法,update user set host=’%’ where user=’root’,但是执行这个操作之后,远程可以连接mysql了,但是本地登录提示密码错误。

查看user表信息

发现本地登录用的是localhost,不需要密码

不输入密码直接登录,可以连接,证明自己的猜测是对的,但是show databases看不到之前的数据库。

原来是localhost没有权限导致的,看来直接update user set host=’%’ where user=’root’是不行的,更改其中的一个%为127.0.0.1试下


还是不行,如果将另一个%改回localhost,本地可以登录。


但是远程又访问不了了,该怎么办呢?看了下mysql官方的提示,原来这么简单,只需要一个grant语句就可以了。
grant all privilegesI on dbcenter.* to root@'%' identified by 'zhcw123';
执行flush privileges;使操作立即生效,查mysql数据库下的user表,原来是在user表里加了一条新记录,而不是直接update。

困扰两天的问题终于解决啦!
本文介绍了解决LAMP环境中MySQL无法远程访问的问题,通过使用grant语句赋予root用户远程访问权限,并确保所有操作立即生效。
1963

被折叠的 条评论
为什么被折叠?



