为UnrealEngine搭建MySQL数据库

前言

为了使用UnrealGameSync(UGS)使用连接MySQL数据库,我们需要搭建适用于UGS使用的数据库为连接 UnrealGameSync的MetaDataServer(元数据服务器)使用的MySQL数据库。

简单来讲元数据服务器用于不同用户通过网络进行数据通信,而MySQL则为元数据服务器提供数据管理服务。


一、环境设置

1.所使用硬件

  • 个人电脑
  • 群晖Nas服务器

2.所需软件

  • Docker (Nas端)
  • MySQL WorkBench (PC端)
  • PuTTY(PC端)

二、软件安装

1.安装Docker (Nas端)

在群晖的套件中心点击安装即可

2.安装MySQLworkbench

MySQL :: Download MySQL Workbench

 

 

 一路点击继续即可

 安装完成

3.安装PuTTY (PC端)

在腾讯软件管家安装

一、安装MySQL

安装MySQL方法一:

然后在Nas中Docker中找到Mysql镜像双击选择latest版本下载即可

这里我下载是Latest最新的版本

下面是Docker中安装配置的参考

环境变量需要增加:

MYSQL_ROOT_PASSWORD: 自定义密码

查看运行状态是否稳定

群晖启动Docker映象,提示Docker API失败的问题解决

  1. 套件中心停止Docker
  2. 用putty或Xshell等SSH客户端登录群晖设备
  3.  在dockerd.json文件中添加
  4. 在套件中心重启docker。

安装MySQL方法二(命令行安装):

接下来我们来到PuTTY中的命令行:

连接进入Nas命令行,输入Nas的用户名和密码

进入root界面

sudo -i

进入Mysql容器

docker exec -it mysql /bin/bash

查看现有的Docker容器

docker ps -a

##下载容器

docker pull mysql:latest

##安装容器

docker run -d --name mysql -p 3306:3306
/volume1/docker/mysql/log:/var/log/mysql
/volume1/docker/mysql/data:/var/lib/mysql
/volume1/docker/mysql/conf:/etc/mysql
--lower_case_table_names=1
--restart unless-stopped
-e MYSQL_ROOT_PASSWORD=初始密码
mysql:latest

找到并记住服务器名称

查看容器详情

docker inspect mysql

进入容器

docker exec -it mysql  /bin/bash

进入MySQL

mysql -uroot -p

输入刚才设置的密码(这里输入你是看不到密码的,输入完直接点回车即可)

这样我们就进入了MySQL

查看sql_mode

SELECT @@sql_mode;

这里可以看到环境配置中是有ONLY_FULL_GROUP_BY,这是我们不想要的,需要去掉,这里我们需要修改my.inf文件,基本思路是在命令行中先把这个文件拷贝出来编辑好再放回去,这样我们在重启容器的时候就可以保留我们修改的配置。

使用VIM在命令行修改

当然你也可以通过vim命令直接在命令行修改,vim的安装命令:

apt-get update
apt-get install net-tools
apt-get install vim
vim /etc/mysql/my.cnf

编辑

i,I,o,O,a,A,r,R

添加sql mode定义

sql mode =STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
:wq 保存退出wim
w 保存
q 退出

如图所示:

在Docker中复制文件修改

复制文件到my.cnf到Nas的FileStation路径

docker cp mysql:/etc/mysql/my.cnf /volume1/files

注意:这里的路径/volume1/files相应权限需要在FiletStation中设置开放给Docker和User可供编辑

可以在本地的文本文件或VS软件打开NAS路径下的my.cnf文件

 修改保存好文件后再使用命令行拷贝回原来的位置

这里需要先再次进入mysql修改写入权限,依次次输入以下命令:

docker ps -a
docker exec -it mysql  /bin/bash
mysql -uroot -p
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的MySQL密码';
exit

然后到再次退回到root,

然后拷贝my.cnf

docker cp /volume1/docker/mysql/conf/my.cnf mysql:/etc/mysql/my.cnf

到这里只需重启容器就可以了

docker restart mysql

我们可以再次进入mysql

docker exec -it mysql  /bin/bash
mysql -uroot -p
SELECT @@sql_mode;

 至此此Docker中的MySQL就部署完成了

退出MySQL

exit;

退出容器

exit;

三、在MySQL WorkBench中配置用户

创建连接

环境设置

 新建用户

这样就可以回到MySQL主界面使用新的账号登陆了 


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unreal Engine 4 Scripting with C++ Cookbook 2016 | ISBN-10: 1785885545 | 431 pages | PDF | 7 MB Key Features A straightforward and easy-to-follow format A selection of the most important tasks and problems Carefully organized instructions to solve problems efficiently Clear explanations of what you did Solutions that can be applied to solve real-world problems Book Description Unreal Engine 4 (UE4) is a complete suite of game development tools made by game developers, for game developers. With more than 100 practical recipes, this book is a guide showcasing techniques to use the power of C++ scripting while developing games with UE4. It will start with adding and editing C++ classes from within the Unreal Editor. It will delve into one of Unreal's primary strengths, the ability for designers to customize programmer-developed actors and components. It will help you understand the benefits of when and how to use C++ as the scripting tool. With a blend of task-oriented recipes, this book will provide actionable information about scripting games with UE4, and manipulating the game and the development environment using C++. Towards the end of the book, you will be empowered to become a top-notch developer with Unreal Engine 4 using C++ as the scripting language. What you will learn Build function libraries (Blueprints) containing reusable code to reduce upkeep Move low-level functions from Blueprint into C++ to improve performance Abstract away complex implementation details to simplify designer workflows Incorporate existing libraries into your game to add extra functionality such as hardware integration Implement AI tasks and behaviors in Blueprints and C++ Generate data to control the appearance and content of UI elements
在 Unreal Engine 中将字节数组转化为 JSON,可以使用 UE 提供的 FJson 模块。以下是一个简单的示例代码: ```c++ #include "JsonWriter.h" // 假设有一个 byte 数组叫做 jsonData,长度为 dataLen TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject); JsonObject->SetStringField("name", "Alice"); JsonObject->SetNumberField("age", 25); JsonObject->SetBoolField("isStudent", true); TArray<int32> Grades = {85, 92, 78}; TArray<TSharedPtr<FJsonValue>> JsonGrades; for (int32 i = 0; i < Grades.Num(); i++) { JsonGrades.Add(MakeShareable(new FJsonValueNumber(Grades[i]))); } JsonObject->SetArrayField("grades", JsonGrades); FString JsonString; TSharedRef<TJsonWriter<>> JsonWriter = TJsonWriterFactory<>::Create(&JsonString); FJsonSerializer::Serialize(JsonObject.ToSharedRef(), JsonWriter); // 现在 JsonString 中就是转化后的 JSON 字符串 ``` 上述代码中,首先创建一个 FJsonObject 对象,然后通过 FJsonObject 的各种 Set*Field 方法设置字段的值。其中 grades 字段是一个数组,需要先创建一个 TArray<TSharedPtr<FJsonValue>> 对象,然后将每个元素转换为 TSharedPtr<FJsonValueNumber> 类型并添加到数组中,最后通过 FJsonObject 的 SetArrayField 方法设置 grades 字段的值。 然后创建一个 TJsonWriter 对象,用于将 FJsonObject 对象转换为 JSON 字符串。最后调用 FJsonSerializer::Serialize 方法将 FJsonObject 对象序列化为 JSON 字符串,并存储在 FString 变量 JsonString 中。 需要注意的是,在使用 FJson 模块生成 JSON 数据时,需要确保数据的格式正确,否则会导致生成的 JSON 数据不符合规范。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值