单体服务器的业务承载量有限,所以应用服务器和数据库服务器分开部署数据常规操作,这里记录下一些需要注意的点。
业务场景:
A为应用服务器,Linux系统,有公网IP
B为数据库服务器,Linux系统,只有内网IP
需要通过A服务器的公网IP连接A服务器,然后来管理B服务器上的数据库。
下载安装phpMyAdmin
开源PHP数据库管理工具,官网下载链接: https://www.phpmyadmin.net/downloads/
用到的命令:
tar zxvf phpMyAdmin-4.7.8-all-languages.tar.gz
mv phpMyAdmin-4.7.8-all-languages phpmyadmin
cp -p config.sample.inc.php config.inc.php
配置Mysql数据库
phpMyAdmin默认使用的是MySQL的帐户和密码。默认使用的是本机的mysql,默认如下
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
MySQL默认用户名是root,密码是空。但是phpMyAdmin不允许空密码登录,所以需要在A服务器内网连接B服务器,然后在数据库服务器B上配置Mysql的密码,再从phpMyAdmin进行登录。
linux以ssh方式连接局域网服务器,执行命令ssh root@192.168.3.1
,示例如下:
[root@nginx phpmyadmin]# ssh root@192.168.3.1
root@192.168.11.7's password:
Last login: Fri Feb 23 21:40:19 2018 from 192.168.3.2
[root@mysql56 ~]#
注意需要给Mysql开放远程连接的账号并配置防火墙规则,开放3306端口。
可以参考:
阿里云Centos7服务器-JavaWeb正式环境搭建 Mysql部分
https://www.2cto.com/database/201412/359998.html
配置完毕后退出B服务器的SSH连接
[root@mysql56 ~]# exit
回到A服务器进行局域网连接测试:
mysql -h 192.168.3.1 -utest -p
配置phpMyAdmin
可以正常登录后,配置phpMyAdmin,修改phpmyadmin目录中libraries
文件夹下的config.default.php
文件,设置成刚刚设置的数据库参数即可,比如
$cfg['Servers'][$i]['host'] = '192.168.3.1';
$cfg['Servers'][$i]['user'] = 'test';
$cfg['Servers'][$i]['password'] = '123456';
常见异常:
#2002 - 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)
网上都是说把host的localhost
改为127.0.0.1
,由于是以局域网IP方式作为host,所以这个方式无效,最终通过去数据库服务器开放远程连接账户和防火墙端口解决。
配置Nginx
关于PHP环境的搭建可参考 Centos7搭建PHP环境
配置完毕的nginx,输入http://yourIpAddress:8081/phpmyadmin
可直接访问phpMyAdmin登录页面:
server {
listen 8081;
server_name localhost;
location /phpmyadmin {
root html;
index index.php index.html;
}
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
(完)
参考链接:
http://www.osyunwei.com/archives/869.html