局域网内远程登录phpMyAdmin管理服务器端数据库

  • Post author:
  • Post category:php


之前做网站的时候在自己电脑上搭建了PHP+Apache+MySQL服务器,今天突发奇想,想试着在实验室的其他电脑上访问我自己电脑的数据库,即通过http://我的IP/phpMyAdmin的方式。

我的电脑IP是10.103.26.216。

由于phpMyAdmin是一个网页版的数据库管理工具,所以首先要让局域网里的其他用户能够访问我的Apache服务器。在Apache的安装目录下面的conf里面找到httpd.conf,打开,找到ServerName localhost:80,改为ServerName 10.103.26.216:80。

然后重启Apache,在其他电脑上试了一下,输入http://10.103.26.216/phpMyAdmin,可以显示登陆页面,如下:


输入用户名、密码,之后却无法登录,也没有报错。我想,可能是和phpMyAdmin的配置有关,可能之前配置成了只允许从localhost登录,需要重新配置一下。

打开phpMyAdmin的文件夹,找到config.inc.php打开,找到$cfg[‘PmaAbsoluteUri’] = ‘http://localhost/phpMyAdmin/’;改为$cfg[‘PmaAbsoluteUri’] = ‘http://10.103.26.216/phpMyAdmin/’;;找到$cfg[‘Servers’][$i][‘host’] = ‘localhost’;改为$cfg[‘Servers’][$i][‘host’] = ‘10.103.26.216’;

重新登录,结果还是无法进入数据库,再修改libraries下面的config.default.php,同样修改上面两项。

再重新登录,发现报错:#1130 无法登录 MySQL 服务器,百度之,解决办法如下:



百度查询mysql的1130错误是远程连接的用户无远程权限问题导致。解决方案:在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%’。



mysql -u root -p



mysql>use mysql;



mysql>select ‘host’ from user where user=’root’;



mysql>update user set host = ‘%’ where user =’root’;



mysql>flush privileges;



mysql>select ‘host’   from user where user=’root’;







第一句是以权限用户root登录



第二句:选择mysql库



第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)



第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址



第五句:刷新MySQL的系统权限相关表



第六句:再重新查看user表时,有修改。。



最后重起mysql服务即可完成。

再次登录,可以进入数据库了!

>>>>>>>>>>接着说,

我觉得如果让所有人都以root权限登录数据库的话会很危险,所以我想添加一个普通用户,假设为vosamo,本来我认为应该比较简单,一开始采取方法如下:

从phpMyAdmin以root用户登录;

添加新用户vosamo,设置好密码,权限,只设置读写删改的权限;

把主机host设置为%(表示可以从任意主机登录);

确定。

退出,从另一台电脑,以vosamo登录,结果登不上,报错:

#1045 无法登录 MySQL 服务器!

不知为何,百思不得其解。然后把该用户删除,尝试以root身份在命令行中以如下命令添加用户:

mysql>grant select,insert,update,delete on *.*  to vosamo@“%” identified by “vosamo”;

这条命令表示新添加一个名为vosamo的用户并授权,on *.*表示该用户对所有数据库都有上述权限;@“%”表示可以通过任意主机访问;identified by “vosamo”表示密码为vosamo;

添加完之后,flush privilege;刷新权限。

再次以vosamo远程登录,成功!

疑问就是不知道为什么在命令行可以成功,在phpMyAdmin的界面下添加就不行~



版权声明:本文为vosamo007原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。