解决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 仿腾讯发表微博的效果代码
Dec 25 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
Jun 09 Javascript
Javascript学习笔记之数组的遍历和 length 属性
Nov 23 Javascript
JavaScript实现点击单元格改变背景色的方法
Feb 12 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 Javascript
bootstrap栅格系统示例代码分享
May 22 Javascript
react-router中的属性详解
Jun 01 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
Sep 14 Javascript
JavaScript中Require调用js的实例分享
Oct 27 Javascript
JavaScript Math对象和调试程序的方法分析
May 13 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
Jul 15 Javascript
ant design charts 获取后端接口数据展示
May 25 Javascript
基于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
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
React-intl 实现多语言的示例代码
2017/11/03 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
python使用zip将list转为json的方法
2018/12/31 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
opencv与numpy的图像基本操作
2019/03/08 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
Python如何解除一个装饰器
2020/08/07 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
化工专业个人的求职信范文
2013/11/28 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
私人委托书格式
2014/09/10 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js