解决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 相关文章推荐
摘自百度的图片轮换效果代码
Nov 19 Javascript
图像替换新技术 状态域方法
Jan 28 Javascript
javascript 验证日期的函数
Mar 18 Javascript
多种方法判断Javascript对象是否存在
Sep 22 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
Sep 30 Javascript
JS实现1000以内被3或5整除的数字之和
Feb 18 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
Jul 10 Javascript
JS禁止查看网页源代码的实现方法
Oct 12 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
Jan 23 Javascript
Webpack如何引入bootstrap的方法
Jun 17 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 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网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
Redux实现组合计数器的示例代码
2018/07/04 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
Python命令行click参数用法解析
2019/12/19 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
python如何对链表操作
2020/10/10 Python
python 制作本地应用搜索工具
2021/02/27 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
幼儿园安全责任书
2014/04/14 职场文书
买卖协议书范本
2014/04/21 职场文书
小学英语教学随笔
2015/08/14 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript