解决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解密入门 最终变量劫持
Jun 25 Javascript
Jquery实战_读书笔记2 选择器
Jan 22 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 Javascript
javascript full screen 全屏显示页面元素的方法
Sep 27 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
Mar 18 Javascript
JavaScript DOM事件(笔记)
Apr 08 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 Javascript
vue中实现滚动加载更多的示例
Nov 08 Javascript
angular学习之动态创建表单的方法
Dec 07 Javascript
用VsCode编辑TypeScript的实现方法
May 07 Javascript
Vue CLI中模式与环境变量的深入详解
May 30 Vue.js
基于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 猴子摘桃的算法
2017/06/20 PHP
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
用jquery快速解决IE输入框不能输入的问题
2016/10/04 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
vue实现动态数据绑定
2017/04/28 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
Python检测生僻字的实现方法
2016/10/23 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
SQL注入攻击的种类有哪些
2013/12/30 面试题
幼儿园师德师风学习材料
2014/05/29 职场文书
婚前财产协议书范本
2014/10/19 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL