我在设置MySQL远程连接时走的弯路
在DigitalOcean租了一个虚拟服务器之后,部署了自己的wordpress,现在想部署一些自己编写的项目,于是就想着利用本机的MySQL WorkBench连接到服务器中的MySQL,但是连接总是不成功,折腾了一整天,终于解决问题,居然仅仅是因为一点小错误!
设置 MySQL WorkBench 的远程MySQL连接如下图所示但是,在点击Test Connection时,总是报错,提醒
2003 - Can't connect to MySQL server on 'localhost' (10038)
于是,就在网上一通乱找,百度谷歌一起用,知道原来是用户权限的问题,于是按照提示的步骤,先添加一个数据库用户
通过控制台远程登陆MySQL,
mysql>grant all privileges on *.* to admin@localhost identified by 'something' with grant option;
添加一个用户admin并授权通过本地机(localhost)访问,密码"something"。
mysql>grant all privileges on *.* to admin@"%" identified by 'something' with grant option;
添加一个用户admin并授权可从任何其它主机发起的访问(通配符%)。使用这一条语句即可。
然后,运行 flush privileges; 更新权限设置。
本来到这里,所有设置已经没有问题了,但还是测试连接时还是失败,而且报错变为MySQL服务无法启动 2003 - Can't connect to MySQL server on‘localhost' (10061).
于是又沿着这条路继续网上搜索,还好当时没有按照网上的说法删除日志或者卸载重装MySQL,原来只需要重启一下 MySQL的服务就OK了。但是在重启MySQL的时候,遇到了一点小波折,service mysql restart前忘记加sudo,导致一直报错,但又不知道是什么原因,郁闷了一整天,还以为是MySQL有问题,差点重装。后来通过sudo service mysql restart直接解决问题。