解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题


Posted in Javascript onMarch 09, 2017

前言

最近用 Node 写一个小玩意,需要用到 MySQL 数据库,现在用得最广泛的是 mysql 这个库。然后呢,现在 ORM 这么火,干脆也上 ORM 吧,正好我也不会可以学习一下,于是找到了 Sequelize.js 这个 ORM 库。

发现问题

看看 Sequelize 的文档,so easy,两分钟搞定~

import Sequelize from 'sequelize';
let sequelize = new Sequelize('database', 'username', 'password', {
 host: 'localhost',
 port: 3306,
 dialect: 'mysql',
 pool: {
  max: 5,
  min: 0,
  idle: 10000
 }
});
// ...后面还有一堆懒得贴了

运行一下

SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306

什么鬼,为什么会出现这个错误呢?我明明设置的是 localhost,为什么会变成 127.0.0.1?

解决问题

照例先谷歌,确实发现了很多人也遇到了这个问题,解决方法大概有这么几种:

     1、你丫以为不用装 MySQL 就能跑了么?快去装数据库!

     2、你数据库运行了么你?赶紧 /etc/init.d/mysqld start 运行起来

     3、端口写错了

     4、你是不是开启了 skip-networking 这个选项?Remove it !

看到这里,我反应过来了,因为我的数据库不涉及到远程访问,只要使用 Unix socket 通信就够了,于是就启用了 skip-networking 让 MySQL 不监听指定端口。

先科普一下 skip-networking 是什么

Do not listen for TCP/IP connections at all. All interaction with mysqld must be made using named pipes or shared memory (on Windows) or Unix socket files (on Unix). This option is highly recommended for systems where only local clients are permitted.

翻译一下就是:

不要监听 TCP/IP 连接。所有与 mysqld 的交互必须使用命名管道或共享内存(在 Windows 上)或 Unix socket 文件(在 Unix 上)。强烈建议对只允许本地客户端的系统使用此选项。

来源

但是为了安全性,我并不想把这个选择给移除,难道只好忍痛不用 ORM 了吗?

因为看了文档,mysql 这个连接库是可以使用 socketPath 这个属性指定 Unix 套接字文件,但是 Sequelize.js 没发现有关属性。

最后只好发 issue,不久就有 dalao 回答说可以用 dialectOptions 设置 mysql 的属性。

下面是测试成功的代码:

import Sequelize from 'sequelize';
let sequelize = new Sequelize('database', 'username', 'password', {
 host: 'localhost',
 port: 3306,
 dialect: 'mysql',
 dialectOptions: {
  socketPath: '/tmp/mysql.sock' // 指定套接字文件路径
 }
 pool: {
  max: 5,
  min: 0,
  idle: 10000
 }
});

就是这么简单…

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js跨域访问示例(客户端/服务端)
May 19 Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
Feb 13 Javascript
json+jQuery实现的无限级树形菜单效果代码
Aug 27 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
Sep 01 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 Javascript
AngularJS监听ng-repeat渲染完成的方法
Mar 20 Javascript
uni-app微信小程序登录授权的实现
May 22 Javascript
详解js创建对象的几种方式和对象方法
Mar 01 Javascript
jquery插件实现搜索历史
Apr 24 jQuery
基于vue实现分页/翻页组件paginator示例
Mar 09 #Javascript
vue.js利用Object.defineProperty实现双向绑定
Mar 09 #Javascript
javascript遍历json对象的key和任意js对象属性实例
Mar 09 #Javascript
微信小程序 五星评价功能的实现
Mar 09 #Javascript
javascript实现数据双向绑定的三种方式小结
Mar 09 #Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
Mar 09 #Javascript
Vue监听数据对象变化源码
Mar 09 #Javascript
You might like
解析thinkphp中的导入文件标签
2013/06/20 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
教你php如何实现验证码
2016/01/20 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
2016/08/16 Javascript
JS去除重复并统计数量的实现方法
2016/12/15 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
javascript实现画板功能
2020/04/12 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
美术专业个人自我评价
2014/01/18 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
李开复演讲稿
2014/05/24 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
《詹天佑》教学反思
2016/02/20 职场文书