假设: Web 服务器 IP 地址:192.168.33.61
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;
CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']]
|