初學者學到Egg.js配置MySQL,特别是從未接觸過後端的同學,這篇文章很值得你看,因為我就是初學egg.js的,并且也是初次接觸MySQL,在這一次配置的時候,我踩了很大一個大坑,話不多說請看步驟;以下内容都是參考官網和自學總結經驗;
此經驗僅限與MAC系統,windows系統沒有嘗試過,但是應該會有類似的坑!!!
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 (啟動服務: 預設位址是 —> http://127.0.0.1:7001 )
恭喜你初始化了一個egg的項目,是不是很簡單
檔案結果簡單介紹:
因為這裡最主要的是講Egg配置MySQL

未命名檔案 (1).jpg
安裝MySQL插件
1、npm i --save egg-mysql
2、開啟插件
// config/plugin.js
exports.mysql = {
enable: true,
package: 'egg-mysql',
};
3、配置MySQL config
// 這是官網的,但是我個人是使用其他寫法😂
// config/config.${env}.js
exports.mysql = {
// 單資料庫資訊配置
client: {
// host
host: 'mysql.com',
// 端口号
port: '3306',
// 使用者名
user: 'test_user',
// 密碼
password: 'test_password',
// 資料庫名
database: 'test',
},
// 是否加載到 app 上,預設開啟
app: true,
// 是否加載到 agent 上,預設關閉
agent: false,
};
// 這是我個人寫法,建議使用我這種寫法,因為接下來的配置都是根據這種寫法編寫的;
// config/config.default.js
module.exports = appInfo => {
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',
// 資料庫名
database: 'test',
},
// 是否加載到 app 上,預設開啟
app: true,
// 是否加載到 agent 上,預設關閉
agent: false,
};
return {
...config,
...userConfig,
};
};
報錯問題:

螢幕快照 2019-04-29 下午9.33.20.png
疑惑來了,為什麼跟着官網走的,還報錯;我們似乎忽略了些什麼步驟沒有做?
很對,我們隻是安裝了MySQL插件,但是我們沒有安裝 MySQL 資料庫,是以肯定會報錯;
解決方法:
1、安裝MySQL包,可以到官網下載下傳 點選這裡進入官網
2、安裝視圖化工具,這裡推薦 mysql workbench、navicat for mysql;這兩種視圖化工具各有所長,這裡不便詳細講解;
安裝提示:
一路按繼續和同意

螢幕快照 2019-04-29 下午9.52.34.png
到了Configuration時候就要注意了,預設是第一個,但請勾選第二個,避免編譯但時候涉及到一個強制密碼到問題報錯;

螢幕快照 2019-04-29 下午9.53.16.png
這一步到時候,請注意root是你資料庫到預設使用者名,下面到輸入框,是你需要設定到資料庫密碼,設定完的時候,記得更改你egg項目中 config/config.default.js的 config.mysql配置user和password;

螢幕快照 2019-04-29 下午9.53.27.png
設定全局變量
1、sudo vim .bash_profile
2、按 i 鍵進入編輯模式,編輯内容如下
export PATH=${PATH}:/usr/local/mysql/bin
3、source .bash_profile
啟動步驟:
點選左上角的蘋果LOGO ==> 偏好設定,點開下圖圈出的圖示

螢幕快照 2019-04-29 下午10.21.50.png
點選啟動服務

螢幕快照 2019-04-29 下午10.25.20.png
如果不小心選擇了第一步并且安裝好了怎麼辦?沒關系,點選Uninstall解除安裝重裝就好,
終端輸入指令測試是否安裝成功:
1、mysql -u root -p
2、輸入資料庫的登入密碼
提示:如果未登入成功報以下錯誤提示,請檢查MySQL 服務是否啟動成功(蘋果logo--->偏好設定--->mysql 如果是start狀态,就表示尚未啟動成功,點選Start啟動服務,再重新在終端輸入指令就好)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
建立資料庫:
這裡我使用的是 mysql workbench圖形化工具,來建立資料庫,當然你也可以使用終端指令來建立;

螢幕快照 2019-04-29 下午10.11.17.png
點選左下方的MySQL資料庫進行登入,進入之後操作步驟如下;

1.png

2.png

3.png
現在資料庫是空的,表也空,如果需要加點什麼,請參考官網來建立資料;
這裡還沒有完,不要記着去跑項目還需要下載下傳一個插件
安裝 Redis
1、brew install redis
2、redis-server
啟動成功如下圖

螢幕快照 2019-04-29 下午11.39.13.png
提示:
// 确認你的 config/config.default.js 配置是否和資料庫一樣
// mysql配置檔案
config.mysql = {
client: {
// host
host: '127.0.0.1',
// 端口号
port: '3306',
// 使用者名
user: 'root',
// 密碼
password: '這裡輸入你安裝資料庫時候設定的密碼',
// 資料庫名
database: 'test',
},
// 是否加載到 app 上,預設開啟
app: true,
// 是否加載到 agent 上,預設關閉
agent: false,
};
重新啟動
sudo npm run dev
成功跑起來了

螢幕快照 2019-04-29 下午11.43.19.png
整個egg配置MySQL的坑就踩到這裡了;
總結:
1、對于新手來講MySQL是個非常陌生到東西,踩坑是難免到,需要耐心多探索;
2、在探索過程中不管能否解決問題,我們都是在成長,每搜尋一次資料,都會看到别人到經驗,取長補短;
3、對此配置到插件 MySQL + Redis + mysql workbench
4、之是以沒有直接把這些寫出來,是想讓大家不這樣做會有哪些坑,以便你幫助他人解決這些問題;
5、每天累計一點新知識,下一個大神就是你~
請勿抄襲釋出,發現必究!!!