最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年03月09日 10:22:13   作者:天天の記事簿  
這篇文章主要介紹了解決Node.js使用MySQL出現connect ECONNREFUSED 127.0.0.1:3306報錯的相關資料,文中將問題描述的很清楚,解決的方法也介紹的很完整,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

最近用 Node 寫一個小玩意,需要用到 MySQL 數據庫,現在用得最廣泛的是 mysql 這個庫。然后呢,現在 ORM 這么火,干脆也上 ORM 吧,正好我也不會可以學習一下,于是找到了 Sequelize.js 這個 ORM 庫。

發(fā)現問題

看看 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?

解決問題

照例先谷歌,確實發(fā)現了很多人也遇到了這個問題,解決方法大概有這么幾種:

     1、你丫以為不用裝 MySQL 就能跑了么?快去裝數據庫!

     2、你數據庫運行了么你?趕緊 /etc/init.d/mysqld start 運行起來

     3、端口寫錯了

     4、你是不是開啟了 skip-networking 這個選項?Remove it !

看到這里,我反應過來了,因為我的數據庫不涉及到遠程訪問,只要使用 Unix socket 通信就夠了,于是就啟用了 skip-networking 讓 MySQL 不監(jiān)聽指定端口。

先科普一下 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.

翻譯一下就是:

不要監(jiān)聽 TCP/IP 連接。所有與 mysqld 的交互必須使用命名管道或共享內存(在 Windows 上)或 Unix socket 文件(在 Unix 上)。強烈建議對只允許本地客戶端的系統使用此選項。

來源

但是為了安全性,我并不想把這個選擇給移除,難道只好忍痛不用 ORM 了嗎?

因為看了文檔,mysql 這個連接庫是可以使用 socketPath 這個屬性指定 Unix 套接字文件,但是 Sequelize.js 沒發(fā)現有關屬性。

最后只好發(fā) 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
 }
});

就是這么簡單…

總結

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

相關文章

  • NodeJS中利用Promise來封裝異步函數

    NodeJS中利用Promise來封裝異步函數

    這篇文章主要介紹了NodeJS中利用Promise來封裝異步函數,使用統一的鏈式API來擺脫多重回調的噩夢,非常的實用的小技能,希望小伙伴們能夠喜歡
    2015-02-02
  • node.js如何自定義實現一個EventEmitter

    node.js如何自定義實現一個EventEmitter

    我們了解到,Node采用了事件驅動機制,而EventEmitter就是Node實現事件驅動的基礎,本文主要介紹了node.js自定義實現EventEmitter,感興趣的可以了解一下
    2021-07-07
  • node?path的使用詳解

    node?path的使用詳解

    這篇文章主要介紹了node?path的使用詳解,使用path.join()方法,可以把多個路徑片段拼接為完整的路徑字符串,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • nodejs實現發(fā)送郵箱驗證碼功能

    nodejs實現發(fā)送郵箱驗證碼功能

    這篇文章主要為大家詳細介紹了nodejs實現發(fā)送郵箱驗證碼功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • node實現生成帶參數的小程序二維碼并保存到本地功能示例

    node實現生成帶參數的小程序二維碼并保存到本地功能示例

    這篇文章主要介紹了node實現生成帶參數的小程序二維碼并保存到本地功能,涉及nodejs模塊引用、接口調用、編碼轉換、圖片生成等相關操作技巧,需要的朋友可以參考下
    2018-12-12
  • npm 語義版本控制詳解

    npm 語義版本控制詳解

    這篇文章主要介紹了npm 語義版本控制詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 實例詳解Nodejs 保存 payload 發(fā)送過來的文件

    實例詳解Nodejs 保存 payload 發(fā)送過來的文件

    這篇文章主要介紹了實例詳解Nodejs 保存 payload 發(fā)送過來的文件 的相關資料,需要的朋友可以參考下
    2016-01-01
  • Node.js API詳解之 util模塊用法實例分析

    Node.js API詳解之 util模塊用法實例分析

    這篇文章主要介紹了Node.js API詳解之 util模塊用法,結合實例形式分析了node.js API中util模塊基本功能與相關函數使用技巧,需要的朋友可以參考下
    2020-05-05
  • node.js中的fs.readlinkSync方法使用說明

    node.js中的fs.readlinkSync方法使用說明

    這篇文章主要介紹了node.js中的fs.readlinkSync方法使用說明,本文介紹了fs.readlinkSync方法說明、語法、接收參數、使用實例和實現源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js 基礎教程之全局對象

    Node.js 基礎教程之全局對象

    這篇文章主要介紹了Node.js 基礎教程之全局對象的相關資料,Node.js 中的全局對象是 global,所有全局變量(除了 global 本身以外)都是 global 對象的屬性,需要的朋友可以參考下
    2017-08-08

最新評論

嘉兴市| 鄯善县| 方城县| 泰和县| 浦城县| 靖安县| 平遥县| 彰化县| 会理县| 彰化县| 肇东市| 南华县| 堆龙德庆县| 永州市| 尉氏县| 绿春县| 宜城市| 玉环县| 重庆市| 杨浦区| 封开县| 彭阳县| 永吉县| 漳州市| 咸阳市| 布尔津县| 夹江县| 龙山县| 剑河县| 延津县| 正阳县| 陇南市| 忻城县| 个旧市| 涟水县| 五莲县| 灌南县| 乌兰县| 姚安县| 富民县| 祁阳县|