相信技术的力量

Linux连接局域网数据库服务器

单体服务器的业务承载量有限,所以应用服务器和数据库服务器分开部署数据常规操作,这里记录下一些需要注意的点。

业务场景:

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部分

Linux-Centos7防火墙配置

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

⬆️