初學者學到Egg.js配置MySQL,特別是從未接觸過后端的同學多艇,這篇文章很值得你看温艇,因為我就是初學egg.js的因悲,并且也是初次接觸MySQL,在這一次配置的時候勺爱,我踩了很大一個大坑晃琳,話不多說請看步驟;以下內(nèi)容都是參考官網(wǎng)和自學總結(jié)經(jīng)驗;
此經(jīng)驗僅限與MAC系統(tǒng)卫旱,windows系統(tǒng)沒有嘗試過人灼,但是應(yīng)該會有類似的坑!9艘怼投放!
Egg初始化項目
1、npm I egg-init -g (全局安裝)
2适贸、egg-init eggdemo --type=simple (初始化項目灸芳,eggdemo001是項目名字)
3、cd /eggdemo (進入項目中)
4拜姿、npm i (下載所有依賴)
5烙样、sudo npm run dev (啟動服務(wù): 默認地址是 —> http://127.0.0.1:7001 )
恭喜你初始化了一個egg的項目,是不是很簡單
文件結(jié)果簡單介紹:
因為這里最主要的是講Egg配置MySQL
安裝MySQL插件
1蕊肥、npm i --save egg-mysql
2谒获、開啟插件
// config/plugin.js
exports.mysql = {
enable: true,
package: 'egg-mysql',
};
3、配置MySQL config
// 這是官網(wǎng)的晴埂,但是我個人是使用其他寫法??
// config/config.${env}.js
exports.mysql = {
// 單數(shù)據(jù)庫信息配置
client: {
// host
host: 'mysql.com',
// 端口號
port: '3306',
// 用戶名
user: 'test_user',
// 密碼
password: 'test_password',
// 數(shù)據(jù)庫名
database: 'test',
},
// 是否加載到 app 上究反,默認開啟
app: true,
// 是否加載到 agent 上,默認關(guān)閉
agent: false,
};
// 這是我個人寫法儒洛,建議使用我這種寫法精耐,因為接下來的配置都是根據(jù)這種寫法編寫的;
// config/config.default.js
module.exports = appInfo => {
/**
* built-in config
* @type {Egg.EggAppConfig}
**/
const config = {};
// use for cookie sign key, should change to your own and keep security
config.keys = appInfo.name + '_1555670972072_2197';
// add your middleware config here
config.middleware = [];
// mysql配置文件
config.mysql = {
client: {
// host
host: 'mysql.com',
// 端口號
port: '3306',
// 用戶名
user: 'test_user',
// 密碼
password: 'test_password',
// 數(shù)據(jù)庫名
database: 'test',
},
// 是否加載到 app 上琅锻,默認開啟
app: true,
// 是否加載到 agent 上卦停,默認關(guān)閉
agent: false,
};
return {
...config,
...userConfig,
};
};
報錯問題:
疑惑來了,為什么跟著官網(wǎng)走的恼蓬,還報錯惊完;我們似乎忽略了些什么步驟沒有做?
很對处硬,我們只是安裝了MySQL插件小槐,但是我們沒有安裝 MySQL 數(shù)據(jù)庫,所以肯定會報錯荷辕;
解決方法:
1凿跳、安裝MySQL包,可以到官網(wǎng)下載 點擊這里進入官網(wǎng)
2疮方、安裝視圖化工具控嗜,這里推薦 mysql workbench、navicat for mysql骡显;這兩種視圖化工具各有所長疆栏,這里不便詳細講解曾掂;
安裝提示:
一路按繼續(xù)和同意
到了Configuration
時候就要注意了,默認是第一個壁顶,但請勾選第二個珠洗,避免編譯但時候涉及到一個強制密碼到問題報錯;
這一步到時候若专,請注意root是你數(shù)據(jù)庫到默認用戶名险污,下面到輸入框,是你需要設(shè)定到數(shù)據(jù)庫密碼富岳,設(shè)定完的時候,記得更改你egg項目中 config/config.default.js的 config.mysql配置user和password拯腮;
設(shè)置全局變量
1窖式、sudo vim .bash_profile
2、按 i 鍵進入編輯模式动壤,編輯內(nèi)容如下
export PATH=${PATH}:/usr/local/mysql/bin
3萝喘、source .bash_profile
啟動步驟:
點擊左上角的蘋果LOGO ==> 偏好設(shè)置,點開下圖圈出的圖標
點擊啟動服務(wù)
如果不小心選擇了第一步并且安裝好了怎么辦琼懊?沒關(guān)系阁簸,點擊Uninstall
卸載重裝就好,
終端輸入指令測試是否安裝成功:
1哼丈、mysql -u root -p
2启妹、輸入數(shù)據(jù)庫的登錄密碼
提示:如果未登錄成功報以下錯誤提示,請檢查MySQL 服務(wù)是否啟動成功(蘋果logo--->偏好設(shè)置--->mysql 如果是start狀態(tài)醉旦,就表示尚未啟動成功饶米,點擊Start啟動服務(wù),再重新在終端輸入指令就好)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
創(chuàng)建數(shù)據(jù)庫:
這里我使用的是 mysql workbench圖形化工具车胡,來創(chuàng)建數(shù)據(jù)庫檬输,當然你也可以使用終端指令來創(chuàng)建;
點擊左下方的MySQL數(shù)據(jù)庫進行登錄匈棘,進入之后操作步驟如下丧慈;
現(xiàn)在數(shù)據(jù)庫是空的,表也空主卫,如果需要加點什么逃默,請參考官網(wǎng)來創(chuàng)建數(shù)據(jù);
這里還沒有完队秩,不要記著去跑項目還需要下載一個插件
安裝 Redis
1笑旺、brew install redis
2、redis-server
啟動成功如下圖
提示:
// 確認你的 config/config.default.js 配置是否和數(shù)據(jù)庫一樣
// mysql配置文件
config.mysql = {
client: {
// host
host: '127.0.0.1',
// 端口號
port: '3306',
// 用戶名
user: 'root',
// 密碼
password: '這里輸入你安裝數(shù)據(jù)庫時候設(shè)定的密碼',
// 數(shù)據(jù)庫名
database: 'test',
},
// 是否加載到 app 上馍资,默認開啟
app: true,
// 是否加載到 agent 上筒主,默認關(guān)閉
agent: false,
};
重新啟動
sudo npm run dev
成功跑起來了
整個egg配置MySQL的坑就踩到這里了关噪;
總結(jié):
1、對于新手來講MySQL是個非常陌生到東西乌妙,踩坑是難免到使兔,需要耐心多探索;
2藤韵、在探索過程中不管能否解決問題虐沥,我們都是在成長,每搜索一次資料泽艘,都會看到別人到經(jīng)驗欲险,取長補短;
3匹涮、對此配置到插件 MySQL + Redis + mysql workbench
4天试、之所以沒有直接把這些寫出來,是想讓大家不這樣做會有哪些坑然低,以便你幫助他人解決這些問題喜每;
5、每天累計一點新知識雳攘,下一個大神就是你~
請勿抄襲發(fā)布带兜,發(fā)現(xiàn)必究!6置稹刚照!