国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

解決Node.js使用MySQL出現connect ECONNREFUSED 127.0.0.1:3306的問題

2019-11-19 17:13:23
字體:
來源:轉載
供稿:網友

前言

最近用 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 }});

就是這么簡單…

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五指山市| 沙洋县| 观塘区| 新乡市| 琼海市| 江口县| 大丰市| 丰县| 苏尼特右旗| 河北省| 申扎县| 玉林市| 麟游县| 苏州市| 白山市| 尉犁县| 洛阳市| 江门市| 黎城县| 广水市| 许昌县| 临海市| 巴东县| 桓仁| 同江市| 沁源县| 封丘县| 长治市| 探索| 灵川县| 新和县| 虹口区| 浠水县| 炉霍县| 称多县| 陇西县| 石首市| 房产| 临汾市| 庆云县| 玉溪市|