远程登录服务器|远程登录 MySQL / MariaDB数据库配置教程

更新时间:2020-01-09    来源:php与数据库    手机版     字体:

【www.bbyears.com--php与数据库】


如果您想把 Web 服务器与数据库服务器分开,你需要配置一下数据库服务器,让 MySQL / MariaDB 可以远程登录。

假设:

Web 服务器 IP 地址:192.168.33.61
数据库服务器 IP 地址:192.168.33.63
服务器操作系统:CentOS 7


第一步:编辑 my.cnf

 

my.cnf 是 MySQL / MariaDB 的配置文件,名字一般就是 my.cnf:

vi /etc/my.cnf

在 [mysqld] 这个区域的下面,找到 bind-address ,如果没有,就去添加一行:

[mysqld]
bind-address=192.168.33.63

bind-address 后面的值设置成 MySQL / MariaDB 数据库服务器的 IP 地址,最好使用私有 IP 地址,这样数据库服务器不会公开,让所有人都知道。保存配置,然后重新启动服务。

systemctl restart mariadb

第二步:添加远程用户

现在数据库服务可以接受远程的连接,不过目前还没有用户拥有远程连接的权限,你需要再手工去添加一个远程用户,先用 root 用户登录到数据库服务:

mysql -u root -p

然后去创建一个数据库:

create database drupal;

再创建一个新的用户,注意这个用户是在 Web 服务器上可以使用的用户,所以需要指定一个 Web 服务器的 IP 地址:

create user 'drupal'@'192.168.33.61' identified by 'drupal';

也就是,drupal 这个用户,只能在 192.168.33.61 这个 IP 地址的服务器上连接到数据库服务器。再去给这个用户分配权限:

grant all privileges on drupal.* to ' drupal'@'192.168.33.61';

立即生效,再执行:

flush privileges;

第三步:远程连接

在 Web 服务器上,试着去登录一下数据库服务器上的数据库系统:

mysql -u drupal -h 192.168.33.63 -p

这里我们用 -h 选择,指定了一下要登录到的服务器的 IP 地址。这个 IP 地址就是数据库服务器的 IP 地址。

如果你发看到类似下面这样的错误:

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.33.63' (113 "No route to host")

很有可能是在数据库服务器上的防火墙的配置原因,配置一下 CentOS 7 自带的防火墙 Firewalld :

firewall-cmd --zone=public --add-port=3306/tcp

完成以后,重新再到 Web 服务器上尝试连接数据库服务器。

补充:## mariaDB 创建用户

 > 我假定你已经做完初始化数据库的操作了(禁掉root的远程访问),然后在本地用root帐号连接数据库了。

   mysql -u root -p mysql


你可以先查看下当前下的用户:

     select user,host,password from user;

[mysql]>drop user ''@'localhost'; --删除不安全的账户

[mysql]>drop user root@'::1';

[mysql]>drop user root@127.0.0.1;


 
mariaDB 之前我一直不知道怎么创建用户的,不过我想,应该也像postgresql,有自己创建用户的命令才是。但是google未果,只好老实去官方看文档了。
mariaDB 创建用户的语法是:

CREATE USER user 

 [IDENTIFIED BY [PASSWORD] 'password']

 [, user [IDENTIFIED BY [PASSWORD] 'password']]


 ...

本文来源:http://www.bbyears.com/jiaocheng/84360.html