深入學習Pomelo(一)—— 配置MySql數(shù)據(jù)庫

前言:

前面配置好了pomelo基于websocket的聊天室。接下來,我們準備為這個聊天室增加一個注冊系統(tǒng),首先,在系統(tǒng)中安裝數(shù)據(jù)庫。根據(jù)實際項目需求,數(shù)據(jù)庫只需要穩(wěn)定,訪問頻度和壓力都不大,所以我們選MySql,而不用Mongodb。官方文檔中可以看到,還有個比較完整的mmorpg游戲的例子lordofpomelo,里面采用了MySql數(shù)據(jù)庫,我們可以把它的這些相關代碼以及部分數(shù)據(jù)庫結構學習過來。只拷貝符合我們需求的代碼。

1. 安裝MySql數(shù)據(jù)庫:

sudo apt install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev

安裝mysql-server的時候,顯示如下信息,要求輸入root密碼:

While not mandatory, it is highly recommended that you set a password
for the MySQL administrative "root" user.

If this field is left blank, the password will not be changed.

New password for the MySQL "root" user:

需要重復輸入一次,設置好了root密碼。
檢查端口狀態(tài):sudo netstat -tap | grep mysql
如果看到有mysql 的socket處于 listen 狀態(tài)則表示安裝成功。

進入數(shù)據(jù)庫:

sudo mysql -u root -p

-u 表示選擇登陸的用戶名, -p 表示登陸的用戶密碼,上面命令輸入之后會提示輸入密碼,此時輸入密碼就可以登錄到mysql。
可以直接在MySql命令行用SQL命令創(chuàng)建庫、表,執(zhí)行查詢等等。

2.安裝圖形化工具MySql Workbench

用命令行固然簡單,但是有個圖形化工具能更直觀??梢灾苯佑胊pt安裝:
sudo apt install mysql-workbench
安裝好之后的樣子:

MySql-Workbench.png

登錄進去之后,創(chuàng)建一個schema:Dev,然后執(zhí)行下面的Sql語句:

CREATE TABLE `User` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) CHARACTER SET utf8 NOT NULL,
  `password` varchar(50) DEFAULT '',
  `loginCount` smallint(6) unsigned DEFAULT '0',
  `lastLoginTime` bigint(20) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

創(chuàng)建一個user表,用于記錄用戶登錄信息。也可以直接在圖形界面設計:

table_user.png

注意:圖中的name和password的長度都是16,是早期的截圖。后面考慮密碼加密等問題,還是將這兩個字段都改成50,VARCHAR在數(shù)據(jù)庫中長度是可變的,這里定義的長度只是最大長度,實際占用空間并不會比定義成16更多。

再創(chuàng)建一個玩家表,用于記錄玩家在游戲中的數(shù)據(jù):

CREATE TABLE `Player` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `userId` bigint(20) unsigned NOT NULL DEFAULT '0',
  `nickname` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '',
  `level` smallint(6) unsigned DEFAULT '1',
  `experience` bigint(20) unsigned DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `INDEX_GAME_NAME` (`nickname`),
  KEY `INDEX_PALYER_USER_ID` (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

這樣我們最基本的數(shù)據(jù)庫和表就配置好了。有了圖形化工具,以后要增刪字段就很方便。比如這個Player表,明顯少記錄了一項:玩家在游戲中的游戲代幣數(shù)量,以后用到再加吧。

3. 配置連接參數(shù):

由于數(shù)據(jù)庫的連接參數(shù)game-server和web-server都需要用到,所以最好放到一個共享目錄。在項目根目錄建立一個shared目錄,再在下面建立個config目錄,在config下面新建一個文件mysql.js,配置連接數(shù)據(jù)庫的參數(shù):

{
    "development": {
      "host" : "127.0.0.1",
        "port" : "3306",
        "database" : "Dev",
        "user" : "dev",
        "password" : "abcd1234"
    },

    "production": {
      "host" : "127.0.0.1",
        "port" : "3306",
        "database" : "Dev",
        "user" : "dev",
        "password" : "abcd1234"
    }
}

數(shù)據(jù)庫名是我們建立的Dev, 賬號最好不要用root。自己用root進入MySql后新建立一個對Dev庫有完整權限的dev賬號即可。我直接在workbench下建立的,點菜單上的Server,選"Users and Privileges",點"Add Account"……

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容