【參考原文】UnityMMO資源整合&服務器部署
【參考原文】CentOS7下安裝mysql5.7
概述
github看到大鵬前輩UnityMMO項目,甚是佩服,於是想編譯運行一發,但苦因自己初次接觸這東西,遂有此文記坑,即centos+vmware workstation+skynet+mysql搭建過程。
CentOS7搭建
- 下載centos7鏡像:阿里雲站點
- 下載vmware workstation
- 步驟在此,不再累贅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' to
libjemalloc.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 #開啓開機啓動