因为技术宅有台闲置的服务器,考虑到现有服务器的配置稍微有点低,预算又不足,就放弃了购买云数据库的想法,于是,就折腾了下给闲置服务器安装了数据库MySQL,并配置了memcached缓存策略!具体的安装配置这里不多赘述,网上教程很多,大家自行百度!今天技术宅主要说的是站库分离数据库远程连接方案!
前提条件
技术宅的服务器提供商是腾讯云,均属于同一可用区域,同一子网,所以这里实现站库分离就很方便了,子网互通,这里技术宅就可以直接操作子网远程连接!
必要操作
数据库默认端口是3306,技术宅这里为了安全,将3306端口修改了!修改方式为打开服务器目录中的etc/my.cnf
,修改port参数为自己想要的端口即可!记得在腾讯云安全组中将端口设置为允许!
并且还需要在安全组中将此端口分别设置站库分离中需要连接此数据库的服务器,并且设置为允许访问,如图中所示!
这样我们的数据库访问地址就仅仅只有这台指定的机子可以访问了,增加了安全性!
添加指定服务器账户
仅仅操作了上面,我们在数据库中填写内网IP:端口
是无法连接数据库,这里我们就需要给数据库添加远程访问账户!在我们将数据库端口已经添加进安全组的前提供下,如果我们服务器开启了iptables,我们还需要操作以下命令给服务器添加端口:
CentOS系统:
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT service iptables save #保存iptables规则
Ubuntu/Debian系统:
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT iptables-save > /etc/iptables.up.rules #保存iptables规则
接下来我们就是添加对应的账户,并且给数据库授权了!
注意⚠️:远程连接新建一个帐号(帐号名不能为root)。
如:添加一个用户名为db_user,密码为db_pass,授权为% (%表示所有IP能连接这里技术宅建议设置为需要连接此数据库的服务器的内网IP,但是因为我们已经在安全组做了闲置,所以无伤大雅!)对db_name数据库所有权限,命令如下:
1)MySQL8.0版本
# mysql -uroot -p MySQL [(none)]> create user '%' identified by 'db_pass'; #创建用户 MySQL [(none)]> grant all privileges on db_name.* to '%' with grant option; #授权 MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
2)其余MySQL版本
# mysql -uroot -p MySQL [(none)]> grant all privileges on db_name.* to '%' identified by 'db_pass'; #授权语句,特别注意有分号 MySQL [(none)]> flush privileges; MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
这样子我们在此输入内网IP:端口
就可以连接数据库了,至此我们已经实现了站库分离数据库远程连接!因为数据库是没有安装web环境的,所以操作数据库需要命令,大家可以查阅《Linux环境下常用的mysql命令操作》。
以上就是站库分离数据库远程连接方案的全部内容了,希望对大家有所帮助!
未经允许不得转载:杂烩网 » 站库分离数据库远程连接方案