©
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
下载phpmyadmin
配置phpmysql的配置文件
所有库有账号通过远程连接MySQL(mysql的grant授权)
登录测试(如果有做数据库的主从要检查用户授权,防止数据的不一致)
Linux版本于内核号 CentOS release 6.5 (Final) 2.6.32-431.el6.x86_64 PHP版本 5.3.28 Phpmyadmin版本 phpMyAdmin-4.4.15-all-languages MySQL多实例 192.168.0.200:3307和192.168.0.200:3308(其中3307为master 3308为slave)
通过修改 phpmyadmin/libraries/config.default.php
大概在805行的$cfg['AllowArbitraryServer'] = true;
# allow login to any user entered server in cookie based authentication,效果如下图:
进行登录,当然这种方式依然得方法一中第四步的授权,这里就不在赘述。(此方法测试未成功,继续关注)
缺点:登陆操作比较繁琐,而且切换服务器时须首先退出当前所登陆的服务器
到https://www.phpmyadmin.net/downloads/
下载phpMyAdmin-4.4.15-all-languages
,解压到网站根目录下重命名为phpmyadmin
cp config.sample.inc.php config.inc.php
复制根目录下的config.sample.inc.php
为config.inc.php
,使用 sed -i '22,34s#^#//#g'
config.inc.php使用sed命令注释掉之前相关行并编辑这个文件,添加一个$hosts数组和一个for循环
// /* // * First server // */ // $i++; // /* Authentication type */ // $cfg['Servers'][$i]['auth_type'] = 'cookie'; // /* Server parameters */ // $cfg['Servers'][$i]['host'] = 'localhost'; // $cfg['Servers'][$i]['connect_type'] = 'tcp'; // $cfg['Servers'][$i]['compress'] = false; // /* Select mysql if your server does not have mysqli */ // $cfg['Servers'][$i]['extension'] = 'mysqli'; // $cfg['Servers'][$i]['AllowNoPassword'] = false; $hosts = array( '1'=>array('host'=>'192.168.0.200','user'=>'phpmyadmin','password'=>'phpmyadmin','port'=>3307), '2'=>array('host'=>'192.168.0.200','user'=>'phpmyadmin','password'=>'phpmyadmin','port'=>3308) ); for($i=1,$j=count($hosts);$i<=$j;$i++){ /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = $hosts[$i]['host']; //修改host $cfg['Servers'][$i]['port'] = $hosts[$i]['port']; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; /* Select mysqli if your server has it */ $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['AllowNoPassword'] = true; $cfg['Servers'][$i]['user'] = $hosts[$i]['user']; //修改用户名 $cfg['Servers'][$i]['password'] = $hosts[$i]['password']; //密码 /* rajk - for blobstreaming */ $cfg['Servers'][$i]['bs_garbage_threshold'] = 50; $cfg['Servers'][$i]['bs_repository_threshold'] = '32M'; $cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600; $cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M'; }
更改完成后刷新登录页面,发现是不是多了些什么?我们可以选择不同的服务器(或者不同的端口)进行登录了。
由于这边192.168.0.200:3307为master,我们在3307端口上进行授权:grant all privileges on *.* to 'phpmyadmin'@'192.168.0.%' identified by 'phpmyadmin' WITH GRANT OPTION;
如果3307和3308已经实现了主从同步,那么我们可以通过用户名为phpmyadmin和密码为 phpmyadmin登录了,但是这样授权是十分不安全的。建议在生产环境中不要这么粗暴的使用,另外我们需要对slave实例进行回收权限,登录192.168.0.3308,操作如下:REVOKE INSERT,ALTER,CREATE,DELETE,DROP,UPDATE ON *.* FROM 'phpmyadmin'@'192.168.0.%'
另可以通过show privileges;查看更多授权权限以及相关作用。
效果如下
相关的增删改操作提示无权限,防止用户误操作引起的主从同步数据的不一致。(这里也可以配置mysql库的主从不同步,然后分别在3307和3308端口上授予用户不同的权限即可)。
优点:登陆操作简便,登陆后切换服务器无须退出当前连接。
方法一、方法二不可混用,如果按照方法一进行了操作,那么方法二将无法生效