如果您想把 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']]
...
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, mysql
, web
, 服务器
, 配置
用户
mysql登录远程数据库、mariadb 远程登录、mariadb 远程登录命令、mysql连接远程数据库、mysql访问远程数据库,以便于您获取更多的相关知识。