如何在本地远程连接管理搭建在cvm服务器上的mysql服务,首先排除如防火墙和安全组等安全策略的限制
主要确认两点: 1.mysql服务是否监听了其他网络可以访问到的地址 这里要看下mysql服务的监听地址,如果是localhost或127.0.0.1这就只能在本机上连接, 不支持其他地址的服务器连接的 可以通过netstat -anupt | grep mysqld 来查看下mysql的监听地址是什么 如下图的查询结果,mysql的监听地址是127.0.0.1:3306
那么如何修改呢? 可以在mysql的配置文件中修改mysql的监听地址 编辑/etc/my.cnf 在[mysqld]节中编辑下面一行: bind-address=0.0.0.0 #全部地址或者指定的ip地址(云服务器的内网地址和外网地址是映射关系 , 在服务器上是看不到外网地址的 ,在绑定监听地址时,写内网地址即可,访问的时候使用外网地址访问 0.0.0.0表示监听所有地址)
编辑完成后重启mysql服务
可以使用telnet命令来监测于服务器3306端口的联通性 如: linux中测试连通成功如下图
windows中下图
连通成功返回如下图
2.mysql是否有允许公网访问权限的帐号 我们先从mysql服务器上登录下mysql 查看下mysql当前存在的用户 select user,host from mysql.user; user列为用户名 , host列为主机位 ,这里看到host只有127.0.0.1 ,localhost 和vm_52_61_centos 其中vm_52_61_centos是本机的主机名 , 这三个地址都表示的是mysql服务器本机的地址. 可以看到没有其他主机地址,这样其他地址的客户端在连接mysql的时候是连接不上的 , 因为没有权限.
那么我们现在加上一个允许所有地址都可以连的用户名是root的用户,所有地址用%来表示 grant all privileges on . to 'root'@'%' identified by '123456' with grant option; 这个命令的意思是 : grant all privileges 授予所有权限 on . 对所有库和所有表 to 'root'@'%' 用户名是root , 允许所有地址 identified by '123456' 密码是123456 with grant option 授予赋权权限
flush privileges; 重载权限
现在再来连接下试下,就可以用外网地址连接啦~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。