今天搭建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。
困扰两天的问题终于解决啦!