【Linux】Skynet服務器搭建

【參考原文】UnityMMO資源整合&服務器部署
【參考原文】CentOS7下安裝mysql5.7

概述

github看到大鵬前輩UnityMMO項目,甚是佩服,於是想編譯運行一發,但苦因自己初次接觸這東西,遂有此文記坑,即centos+vmware workstation+skynet+mysql搭建過程。

CentOS7搭建

  1. 下載centos7鏡像:阿里雲站點
  2. 下載vmware workstation
  3. 步驟在此,不再累贅Centos7下載和安裝教程
踩坑
  • 共享文件夾設置
    centos端選項卡:虛擬機\設置\選項\共享文件夾\添加
    本地win端:本地文件夾,右鍵屬性,共享,高級共享,設爲共享文件夾
  • centos端掛載操作(掛載了才能在/mnt/hgfs/下看到啊啊啊)

    – 查看設置的共享文件夾
    vmware-hgfsclient
    – 安裝open-vm-tools
    yum install open-vm-tools
    – 掛載
    vmhgfs-fuse /mnt/hgfs/

編譯skynet

因爲設置了共享文件夾,所以直接在共享文件夾skynet下編譯了,但是出現錯誤:

ln: creating symbolic link lib/libjemalloc.so' tolibjemalloc.so.2’:
Operation not support

軟連接失敗,卒。常識性錯誤!?反正就是不能在共享文件夾下編譯。
故,將項目中Server部分複製一份在centos端,在skynet文件夾下進行編譯

cd Server
cd skynet
make linux

安裝msyql

  • 獲取安裝配置文件

    wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
    rpm -ivh mysql57-community-release-el7-9.noarch.rpm

  • 執行完成後會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo mysql-community-source.repo
    進入到 /etc/yum.repos.d/目錄後,安裝

    yum install mysql-server

  • 啓動msyql

    systemctl start mysqld

  • 獲取初次登入密碼

    grep ‘temporary password’ /var/log/mysqld.log

  • 登入

    mysql -u root -p;

  • 設置密碼(工程使用默認密碼123456,就不要自由發揮了)

    set global validate_password_policy=LOW;#設置密碼檢查策略爲LOW
    set global validate_password_length=6;#設置密碼的長度爲6
    set password=“123456”;

  • 創建數據庫

    create database UnityMMOAccount;
    create database UnityMMOGame;
    show databases; //查看數據庫

  • 操作數據庫(重頭來過),這裏直接在db所在目錄下操作數據庫,否則相對路徑就需要改變!

    cd Server/data
    mysql -u root -p;
    use UnityMMOAccount;
    source UnityMMOAccount;
    use UnityMMOGame;
    source UnityMMOGame;
    quit;

啓動server

./run.sh

踩坑
  • init service failed: /root/UnityMMO/Server/skynet/lualib/skynet/socket.lua:360: Listen error

    報此錯的原因是已經運行了skynet服務,再次執行./run.sh時會出現上面報錯。
    使用命令找到skynet進程
    netstat -apn
    殺死該進程:
    kill -s 9 xxxxx

  • win端Socket無法連接上linux端問題

    原因:linux開啓了防火牆
    解決:
    iptables -F
    iptables -P INPUT ACCEPT(設置默認允許規則)
    另外方式:
    systemctl status firewalld #查看防火牆狀態
    systemctl stop firewalld.service #關閉防火牆
    systemctl start firewalld.service #開啓防火牆
    systemctl disable firewalld.service #關閉開機啓動
    systemctl enable firewalld.service #開啓開機啓動

發佈了22 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章