访问外网的mysql数据库比较慢是怎么解决

访问外网的mysql数据库比较慢是怎么解决,第1张

后来在网上发现解决方法,myini里面添加

[mysqld]

skip-name-resolve

这样速度就快了!

skip-name-resolve

选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

就MySQL本身而言,问题出在在mysql dns反解析

mysql>show processlist;

| 20681949 | unauthenticated user | 10104193:52497 | NULL | Connect | | Reading from net | NULL |

| 20681948 | unauthenticated user | 10104193:52495 | NULL | Connect | | Reading from net | NULL

发现有非常多的 unauthenticated user 尝试做登入使用 mysql 的情况 ,当这种情况无限制发生时就会造成系统十分缓慢。

查阅mysql官方网站得知,这属于官方一个系统上的特殊设定,就把他当成mysql的一个bug算了,不管链接的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查。mysqld 会尝试去反查 IP -> dns ,由于反查解析过慢,就会无法应付过量的查询。

mysql的root账户,我在连接时通常用的是localhost或127001,公司的测试服务器上的mysql也是localhost所以我想访问无法访问,测试暂停

解决方法:

1,修改表,登录mysql数据库,切换到mysql数据库,使用sql语句查看"select host,user from user ;"

mysql -u root -pvmwaremysqluse mysql;

mysqlupdate user set host = '%' where user ='root';

mysqlselect host, user from user;

mysqlflush privileges;注意:最后一句很重要,目的是使修改生效如果没有写,则还是不能进行远程连接

2,授权用户,你想root使用密码从任何主机连接到mysql服务器

GRANT ALL PRIVILEGES ON TO 'root'@'%' IDENTIFIED BY 'admin123' WITH GRANT OPTION;

flush privileges;

如果你想允许用户root从ip为1921681104的主机连接到mysql服务器

以上就是关于访问外网的mysql数据库比较慢是怎么解决全部的内容,包括:访问外网的mysql数据库比较慢是怎么解决、如何设置mysql允许外网访问、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/9378446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存