這篇文章將接續關於後端觀念(四)-怎麼建立後端開發環境,該篇將會針對「設定資料庫」來進行分享。
在關於後端觀念(四)-怎麼建立後端開發環境中,我們已經建置好MySQL的環境,接著就來設置我們要在下個階段,也就是實作階段所要進行「會員系統」所需要的MySQL資料庫設定。
其步驟分為:
在建立新的database前,我們先啟動在Homebrew中安裝的MySQL。在開啟terminal後,其指令為:
$ brew services start mysql
接著做登入MySQL的root權限。
$ mysql -u root -p
(輸入root密碼)
註記:若是用筆者的安裝方式,會沒有root的預設密碼。也就是我們輸入上述指令後,按下
enter
就能進入MySQL。
成功登入後,就會轉換到MySQL的指令模式,這時我們先建立名稱為「member」的會員資料庫,並設定資料庫的編碼為utf8。(這邊若沒有設定,則會讓資料庫中的中文資料顯示為亂碼,且設定完後也會讓在該資料庫底下的資料表都默認是utf8。但也可以選擇直接在資料表那邊設定,但這樣就會變成假設後續有多個資料表要新建,都需要重複設定編碼才行。)
mysql> CREATE DATABASE member DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
在實務上是不會把DB root帳戶直接給程式用,所以我們先建立一個新的DB帳戶供程式開發所使用。(這邊以帳戶:test、密碼: 1234來舉例)
mysql> create user 'test'@'localhost' IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)
之後在讓test帳戶,擁有更改member資料庫的權限:
mysql> GRANT ALL PRIVILEGES ON member.* TO 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
之後在離開MySQL使用新的帳戶登入
$ mysql -u test -p
(密碼輸入1234)
就能透過帳戶test對member資料庫來進行操作。
先預設一個會員系統可能會需要下列資訊:
接著先透過剛剛建立好的帳戶(test)來切換到MySQL的指令模式:
$ mysql -u test -p
(密碼輸入1234)
然後在切換到”member”的database去
mysql> USE member;
之後就開始建立一個”member_info”的table,並加入剛剛提的這些欄位:
mysql> CREATE TABLE member_info (
-> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> name VARCHAR(30) NOT NULL,
-> email VARCHAR(30) NOT NULL,
-> password VARCHAR(200) NOT NULL,
-> img LONGBLOB,
-> img_name VARCHAR(20),
-> update_date DATETIME,
-> create_date DATETIME NOT NULL);
在上述設定當中,較為特別的是:
關於data type的說明可以參考:
MySQL :: MySQL 5.7 Reference Manual :: 12 Data Types
之後我們可以透過DESCRIBE
指令,來觀看整個table的data type:
mysql> DESCRIBE member_info;
+-------------+-------------+------+-----+---------+---------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+---------------+
| id | int(11) | NO | PRI | NULL | auto_increment|
| name | varchar(30) | NO | | NULL | |
| email | varchar(30) | NO | | NULL | |
| password | varchar(200)| NO | | NULL | |
| img | longblob | YES | | NULL | |
| img_name | varchar(20) | YES | | NULL | |
| update_date | datetime | YES | | NULL | |
| create_date | datetime | NO | | NULL | |
+-------------+-------------+------+-----+---------+---------------+
8 rows in set (0.00 sec)
在設定好資料庫後,就能開始實做「會員註冊」的功能啦!終於要進入到程式實做的階段了!