使用Navicat可以用ssh通道连接上云服务器的数据库,
但是使用tp5框架的时候在本地调试的时候无法直接使用到云服务器的上的本地数据库,
所以便在网上查找资料使云服务器上的mysql数据库可以别远程连接访问。
系统:腾讯云服务器ubuntu16.04系统
1.登录数据库
mysql -uroot -ppassword
root为账户名
password为密码
2.授权
mysql>grant all privileges on *.* to 'accout'@'123.123.123.123' identified by 'password' with grant option;
注意:
mysql语句记得在结尾英文符号的分号;,不然mysql语句无法执行
*.*:第一个位置为数据库名,*表示所有的数据库,第二个位置为表,*表示所有的表
accout,password:授权给accout用户使用password进行登录
123.123.123.123:表示允许的远程连接的IP地址,不想限制链接的IP地址使用%即可
3.使语句立即生效
mysql>flush privileges;
4.修改mysql配置
打开mysqld.cnf
vim /etc/mysql/mysql.conf.d/mysql.cnf
将bind-address = 127.0.0.1注释
即改成#bind-address = 127.0.0.1
4.5 解决访问速度慢
在mysqld.cnf中加入
[mysqld]
#
# * Basic Settings
#
在此后面加入
skip-name-resolve
即可
5.退出mysql指令,重启mysql
mysql>exit;
service mysql restart;
此过程中遇到的问题
在缺少4.5步骤的时候可以远程访问数据库,但是速度很慢
后找到解决方案加入4.5步
原因
默认安装的MYSQL开启了DNS的反向解析。域名解析也可以导致网络程序慢,MySQL在处理新的线程连接请求时,会尝试进行DNS解析,如果在host cache和Hosts里找不到,处理起来就会很慢,一般来说数据库服务器为安全起见是不能连接到外网的,所以dns解析也没办法完成,这就可以解释为什么这么慢了,可以在mysql的配置文件中, 禁用该反向解析功能。