【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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章