一. 背景
最近在看黑馬前端的學(xué)習(xí)視頻盅安,視頻講到使用Vue做電商后臺管理系統(tǒng),由于采用的是前后端分離的模式世囊,所以后臺的接口是必須的别瞭,視頻中的老師是使用windows電腦,采用的是phpStudy啟動mysql數(shù)據(jù)庫株憾,然后導(dǎo)入sql文件的方式蝙寨。我的是mac電腦,然后同樣采用phpStudy的方式嗤瞎,但是一直導(dǎo)入的數(shù)據(jù)不全籽慢,明明一個完整的sql文件,導(dǎo)入以后只有一個表猫胁,所以導(dǎo)致使用postman測試login接口的時候一直失敗箱亿。
后來我想了下,視頻中的目標(biāo)就是啟動mysql弃秆,然后創(chuàng)建數(shù)據(jù)庫届惋,導(dǎo)入.sql文件,再使用node.js把后臺項目跑起來(后臺項目會訪問mysql數(shù)據(jù)庫菠赚,然后返回數(shù)據(jù))脑豹,跑起來之后再通過postman測試接口是否正常。然后我就在mac中實現(xiàn)了這個目標(biāo)衡查,所以才有此文瘩欺。
二. 安裝mysql
本文需要的mysql、postman自己網(wǎng)上下載,服務(wù)端項目代碼在文末俱饿。
- 雙擊mysql的.dmg文件進入安裝程序歌粥,安裝過程中會讓你設(shè)置
root
賬戶的密碼
,這個密碼一定要記住拍埠,因為后面訪問數(shù)據(jù)庫會用到 - 安裝完之后點擊??-系統(tǒng)偏好設(shè)置-MYSQL失驶,可以發(fā)現(xiàn)mysql默認已經(jīng)啟動了
- 打開終端,將MySQL的bin目錄加入系統(tǒng)PATH枣购,做法是嬉探,在用戶目錄(/Users/你的用戶名)下的.bash_profile文件(如果沒有就自己創(chuàng)建一個)中,添加
export PATH=$PATH:/usr/local/mysql/bin
棉圈,添加完成之后保存涩堤,然后在終端執(zhí)行:source ./.bash_profile
使文件生效 - 接下來我們就可以在終端訪問mysql了
① 登錄數(shù)據(jù)庫:執(zhí)行mysql -u root -p
命令,命令意思是使用root
賬號登錄數(shù)據(jù)庫分瘾,需要輸入剛才設(shè)置的密碼
(如果提示zsh: command not found: mysql胎围,則先執(zhí)行source ./.bash_profile
),如果數(shù)據(jù)庫進入成功芹敌,則光標(biāo)會出現(xiàn)在mysql>
后面以便你輸入sql命令
② 創(chuàng)建數(shù)據(jù)庫:在剛才的mysql>
后面執(zhí)行create database 數(shù)據(jù)庫名稱;
(注意:sql命令后面有;)
③ 查看數(shù)據(jù)庫列表:show databases;
④ 進入某個數(shù)據(jù)庫:use 數(shù)據(jù)庫名稱;
⑤ 導(dǎo)入sql文件:source 『將.sql文件拖拽到這里痊远,終端會自動顯示其文件目錄』
(本文需要的.sql文件在文末服務(wù)端項目代碼的db/mydb.sql目錄)
⑥ 顯示本庫中的所有表:show tables;
垮抗,如果本庫中的表沒啥問題氏捞,說明上一步的.sql文件導(dǎo)入沒問題
⑦ 退出數(shù)據(jù)庫操作:exit;
三. 啟動服務(wù)端接口項目
- 在文末找到
vue_api_server
文件(這是服務(wù)端的源代碼,需要電腦安裝node.js環(huán)境才可以運行)冒版,解壓 - 打開終端液茎,cd到解壓后的項目,執(zhí)行
npm install
安裝依賴包 - 打開項目中的
default.json
文件辞嗡,將項目中訪問mysql數(shù)據(jù)庫的名稱捆等、賬號、密碼修改為我們上面創(chuàng)建的數(shù)據(jù)庫名稱续室、賬號栋烤、密碼,如下:
"db_config" : {
"protocol" : "mysql",
"host" : "127.0.0.1",
"database" : "mydb", // 數(shù)據(jù)庫名稱
"user" : "root", // 賬號
"password" : "123456", // 密碼
"port" : 3306
}
- 在終端cd到項目目錄挺狰,執(zhí)行
node app.js
啟動項目明郭,如果打印如下信息并且沒報錯就說明項目啟動成功
/Users/xxxx/Desktop/vue_api_server/routes/api/private/v1/users.js │ put │ /api/private/v1/users/:id/state/:state
可能遇到的錯誤:
- 如果執(zhí)行命令之后報錯:
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
錯誤原因是mysql8.0更改了密碼默認的認證插件為Caching_sha2_password,原來是mysql_native_password丰泊,更改為原來的就可以了薯定,需要按照上面命令重新進入數(shù)據(jù)庫,執(zhí)行如下sql操作:
1瞳购、使用管理員運行命令提示符
2话侄、進入到mysql安裝目錄的bin目錄下默認安裝路徑大概是(C:\Program Files\MySQL\MySQL Server 8.0\bin)
3、在命令提示行中鍵入:mysql -u root -p
4、mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'asd123456';
//此時得到提示Query OK, 0 rows affected (0.01 sec)年堆,這里是修改密碼的認證方式吞杭,root是用戶名,后面是密碼
5嘀韧、mysql> flush privileges; //此時得到提示Query OK, 0 rows affected (0.01 sec)篇亭,這里是重啟權(quán)限
6、mysql> exit; // 退出mysql
- 如果執(zhí)行命令之后報錯:
Error: listen EADDRINUSE: address already in use :::8888
錯誤原因是8888端口被占用锄贷,只需要強制關(guān)閉占用端口的程序就好了译蒂,首先直接列出使用了該端口的應(yīng)用程序lsof -i:端口號
,打印如下:
ColadeMBP:vue_api_server xujincheng$ lsof -i:8888
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 1454 xujincheng 24u IPv6 0x1f8f9382bea99a7b 0t0 TCP *:ddi-tcp-1 (LISTEN)
然后再殺死對應(yīng)的PID:kill -9 對應(yīng)的pid
ColadeMBP:vue_api_server xujincheng$ kill -9 1454
重新執(zhí)行node app.js
啟動項目谊却。
四. 使用postman測試接口是否正常
服務(wù)端項目啟動成功之后就可以使用postman測試接口了柔昼,打開postman,點擊+炎辨,修改請求方式為post
捕透,請求地址為http://127.0.0.1:8888/api/private/v1/login
,點擊body
碴萧,點擊x-www-form-urlencoded
乙嘀,傳入?yún)?shù)如下,點擊send破喻,結(jié)果如下說明接口正常虎谢。
服務(wù)端項目代碼地址:https://github.com/iamkata/mysql-postman-serveCode