腾讯云mysql开放外网权限

一、设置允许root登陆

注:腾讯云 购买ubuntu默认账户是ubuntu

1.修改root密码

sudo passwd root
输入密码(一般和ubuntu密码一样,方便记忆)

2.修改ssh设置

sudo vi /ect/ssh/sshd_config
找到 PermitRootLogin 这项 将其改为 yes
保存退出并重启ssh服务既可。
sudo service ssh restart

二、开放mysql访问

先更新一下:sudo apt-get update

通过sudo apt-get install mysql-server安装了了mysql,这里不做安全考虑,我直接给权限了。

1.连接进入;

#mysql -u root -proot(这里密码在mysql安装过程中提示有设置)

2.我这里直接给root的外部访问权限了;

grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;

赋予root用户针对数据库的全部权限。(password为root用户密码)

假设只开放test数据库的select权限给test用户,则为:
grant select privileges on test.* to test@"%" identified by "password" with grant option;

3.退出数据库。

这时在Windows下面远程连接该数据库,则会报
Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’的错误。
此错误原因在于:
ubuntu中MySQL监听的3306端口IP问题,查看ubuntu中3306端口监听
#netstat -anpt|grep 3306
可以发现,当前默认监听的是127.0.0.1:3306
这里修改127.0.0.1的ip地址为你当前的ip地址。
使用root权限,修改/etc/mysql/my.cnf文件中bind-address,将bind-address=127.0.0.1修改为本机IP,或者注释掉(注释掉就可以不限ip了)
重启MySQL服务,再使用上面命令查看端口监听,就会发现已经变成了本机IP:3306。这时,就还是无法远程连接了。
阿里云的ubuntu再关闭 防火墙或者开放3306端口即可
但是腾讯云要配置安全组. 否则关闭防火墙也没用

3 【最关键的一点】安全组一定要配置开放3306端口等

(仅仅在服务器上配置没有用)
由于腾讯自带的linux安全组 不允许修改 选择 开放所有端口的安全组或者
自己创建和配置 并添加服务器
在这里插入图片描述

四、修改监听的IP

环境:
ubuntu 16.04LTS
mysql 5.7.13 (APT直接装的)

解决方案:
/etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
前面加# 变成 # bind-address = 127.0.0.1
sudo service mysql restart
5.5.7 之后是mysql,不再是mysqld了

五、Python测试连接数据库

注意:Python连接的数据库ip为外网ip

猜你喜欢

转载自blog.csdn.net/Eos0422/article/details/89135128