Linux 17.10环境下Node.js的MySQL模块无法安装求助
嘿,我之前在Linux环境下也碰到过一模一样的npm网络问题,这个ECONNRESET错误本质是npm没法和包registry建立稳定的网络连接,给你几个亲测有效的解决步骤:
先确认你的错误信息(方便对照排查)
divyanshu@DVProBook:~/Documents/nodejsassignment$ npm install -g mysql
npm ERR! Linux 4.13.0-38-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "-g" "mysql"
npm ERR! node v6.11.4
npm ERR! npm v3.5.2
npm ERR! code ECONNRESET
npm ERR! network tunneling socket could not be established, caus...
具体解决步骤
检查并清理npm代理配置
很多时候是错误的代理设置搞的鬼,先查看当前npm的代理:npm config get proxy npm config get https-proxy如果返回了代理地址但你实际不需要代理(比如不在公司内网),直接删掉这些配置:
npm config delete proxy npm config delete https-proxy如果确实需要代理,一定要确认代理地址、端口、验证信息都是正确的。
切换到国内稳定的npm源
默认的npm官方源在某些网络环境下连接不稳定,换成淘宝镜像源试试:npm config set registry https://registry.npmmirror.com设置完成后重新执行安装命令:
npm install -g mysql更新npm到最新版本
你的npm版本是3.5.2,属于比较老旧的版本,存在一些已知的网络兼容问题,先更新npm:npm install -g npm@latest更新完成后再尝试安装mysql模块。
清理npm缓存
缓存文件损坏也可能导致安装失败,强制清理缓存:npm cache clean --force清理后重新执行安装命令即可。
排查网络本身的问题
试试直接ping npm官方源,看是否能连通:ping registry.npmjs.org如果ping不通,可能是防火墙、路由器限制或者ISP的问题,可以切换到手机热点等其他网络再尝试安装。
内容的提问来源于stack exchange,提问作者BinaryDiv

