我在腾讯云服务器上安装好了mysql数据库,而且在云服务器上cmd下以及mysql workbench中都可以操作数据库,数据库用户名和密码为root和空。但是我在个人电脑上通过mysql workbench进行链接却不能顺利完成,在网上搜索相关信息逐步进行排查并成功链接的步骤如下:
- 现在云服务器控制台的安全组中对“入站规则”和“出站规则”进行添加,在腾讯云服务器中自动有mysql 3306端口的项目,选中即可;但是结果还不行;
- 然后baidu了问题,获得如下地址
https://www.cnblogs.com/hometown/p/7076271.html
在该地址中提出的解决方案是在云服务器cmd窗口中进行如下操作:
1、如果服务器有防火墙,需要关一下: systemctl stop firewalld.service #停止firewall
2.给数据库授权远程访问 (1)、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限, 具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作: mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit
(2)、允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作: GRANT ALL PRIVILEGES ON *.* TO root@"172.16.16.112" IDENTIFIED BY "youpassword" WITH GRANT OPTION; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit
(3)、允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作: GRANT select,insert,update,delete ON *.* TO root@"172.16.16.112" IDENTIFIED BY "youpassword"; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit
|
我根据上文的1:通过控制面板找到防火墙将其关闭了;
再根据上文的2进行处理:发现在cmd中无法执行语句,发现不行,弹出“ERROR 1133 (42000): Can't find any matching row in the user table”,
(3)然后找到下面链接:
https://blog.csdn.net/github_38336924/article/details/82702017
通过如下两个命令:
use mysql
;
selectHost
,Userfrom
user;
获得的结果类似如下(过程忘记截图了,直接用该文中的截图),但是第一条的host为localhost
所以我将语句“GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION”改为“GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'youpassword' WITH GRANT OPTION”,发现也不行。
(4)然后找到这篇文章:https://blog.csdn.net/zhangzehai2234/article/details/82885130
将上图中user为root的host字段值改为%后,然后在使用带有%的Grant all privileges…这个语句以及FLUSH PRIVILEGES,语句执行成功。
再在我的电脑上使用mysql workbench进行远程配置连接数据库,就ok了。