解决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 相关文章推荐
地震发生中逃生十大法则
May 12 Javascript
Javascript 二维数组
Nov 26 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
Jun 24 Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 Javascript
使用BootStrap实现悬浮窗口的效果
Dec 13 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
Dec 29 Javascript
ES6数组的扩展详解
Apr 25 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
Dec 24 Javascript
Vue实现导出excel表格功能
Mar 30 Javascript
js实现抽奖功能
Nov 24 Javascript
JavaScript实现H5接金币功能(实例代码)
Feb 22 Javascript
浅谈JavaScript浅拷贝和深拷贝
Nov 07 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性能优化 产生高度优化代码
2011/07/22 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
Destoon实现多表查询示例
2014/08/21 PHP
3种php生成唯一id的方法
2015/11/23 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
php实现小程序支付完整版
2018/10/09 PHP
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
python编辑用户登入界面的实现代码
2018/07/16 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
司机的工作范围及职责
2013/11/13 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书