以前玩单机游戏,总会对单机游戏的目录结构作探讨。

通常,游戏的存储数据都会存储在一个名叫save的文件夹中。如果游戏不大,可以选择用access或其它小型数据库。也可以用这个方法《使用Lua处理游戏数据》。那如果游戏有多么数据存储呢?

其实,这在服务器中用MySQL是很常见的,体积小、速度快、总体拥有成本低。现在先不说在服务器中怎样使用MySQL,先谈谈MySQL嵌入式服务器的使用。没有涉及到C/S,应该会更容易懂些。

在以前学习sqlite时,我问过同学一个问题。我说,sql不是有很多命令吗,写个接口去调用sql命令不就一了百了了?就像写个客端户去调服务器。例如之前我说过的文章:《MySQL编程接口学习》。但是当时和现在,讨论的都是怎样把数据库嵌入应用程序。直接去用数据库或改写数据库就好了,没有必要走那么一个大弯。

嵌入式服务器的使用

完整的MySQL软件包括一个名为libmysqld的嵌入式服务器库,这个库所提供的功能可以让我们把MySQL服务器链接(或者说嵌入)到各种应用程序里。这使我们可以开发出自带MySQL服务器功能的独立应用程序,而不是那些只能作为一个客户通过网络另行连接某个服务器程序的普通MySQL应用程序。

什么是MySQL服务器和MySQL客户端?

DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类为基于客户端——服务器的DBMS。前者(包括诸如Microsoft Access和FileMaker用于桌面用途,通常不用于高端或更关键的应用)。

MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户端——服务器的数据库。客户端——服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。

与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户端软件的计算机。客户端是与用户打交道的软件。

所以现在常见的网络游戏,客户端用在图形交互的部分比较多,而服务器就主要用作数据的处理。

怎样嵌入MySQL服务器?

如果你想编写一个嵌入了服务器的应用程序,就必须满足两个条件。首先,必须安装嵌入式MySQL服务器库:

a.如果从源代码开始构建,请在运行configure 时使用--with-embeded-server选项。

b.如果使用的是二进制发行版本,请使用MySQL5.1以上的版本。

在确认这两项要求都已得到满足之后,只需编译该应用程序并链接嵌入式服务器库(-lmysqld)即可,千万不要像往常那样链接MySQL客户库(-lmysqlclient)。MySQL服务器库的设计十分巧妙,如果你编写了一个应用程序来使用它,只要与相应的库分别链接,就可以得到一个嵌入式或是个客户/服务器版的应用程序。之所以如此,是因为MySQL客户库提供了必要的接口函数,它们可以按客户/服务器通信方式完成初始化和终止处理工作,而不是按照与一个嵌入式服务器进行通信的要求完成这些工作。

编写内建了服务器的应用程序

编写一个内建有服务器的应用程序与编写一个将运行在客户/服务器环境里的应用程序并没有太大的区别。事实上,即使你当初打算编写的是一个将运行在客户/服务器环境里的客户端程序,你也可以轻易地将它转换为使用嵌入式服务器的程序。

单机游戏数据库探讨(MySQL嵌入式服务器的使用)(未完)相关推荐

  1. 游戏思考09:服务器地形(未完待续12/15)

    文章目录 [第一章]游戏中地形管理概念的基础 1)什么是地形,为什么要有地形管理 2)地形管理角度的游戏发展史概述(在服务器怎么描述地形数据?) 2D游戏 2.5D游戏 3D游戏 [第二章]服务器端地 ...

  2. Python爬虫项目,获取所有网站上的新闻,并保存到数据库中,解析html网页等(未完待续)

    1.需求说明 需求: 爬取虎嗅网站的所有新闻,并保存到数据库中. http://www.huxiu.com 技术: 1.爬虫 获取服务器的资源(urllib) 解析html网页(BeautifulSo ...

  3. linux无法同步数据库表,Linux数据库:MySQL主从同步设置和同步错误处理

    注意: 1.两台服务器数据库版本应一致,如果不一致,从服务器的版本要高于主服务器的版本. 2.MySQL进行实时数据同步,本质上是将mysql动作同步到Slave服务器,而不是对实质的数据进行同 步. ...

  4. SQL Server数据库同步问题分享[未完,待续](一)

    SQL Server数据库同步问题分享[未完,待续](一) SQL Server数据库同步问题分享(二)---操作步骤[未完,待续] SQL Server数据库同步问题分享(三)---创建订阅 合并发 ...

  5. 服务器mysql如何添加数据库文件,如何在使用MySQL作为嵌入式服务器时创建数据库文件...

    我试图构建一个应用程序,该应用程序将使用MySQL嵌入式数据库(目前在OS X上,但最终在OS X和Windows上)以及I我以this example为起点.我已经成功地能够建立它,使用cmake这 ...

  6. C语言实现程序连接数据库并实现简单的嵌入式服务器

    我们可以直接访问数据库,当然我们也需要在程序中连接数据库. 接下来我将介绍嵌入式MySQL服务器库. 使用嵌入式 MySQL 服务器库, 能够在客户端应用程序中使用具备全部特性的 MySQL 服务器. ...

  7. mysql和oracle共用服务器_如何用oracle 11g客户端 配置连接服务器数据库?同一台服务器上装MySQL和oracle会有冲突么...

    在上一篇文章中,小编为您详细介绍了关于<模拟飞行10 咋设置多显示器10?>相关知识.本篇中小编将再为您讲解标题如何用oracle 11g客户端 配置连接服务器数据库?同一台服务器上装My ...

  8. 测试mysql连接服务器_实现服务器与数据库的连接

    如何实现服务器与数据库的连接 第一步:先建立数据库,通过apache将数据库据发布到服务器上 1.配置数据库 安装Apache2.2 2.在计算机管理 --->服务--->启动myApac ...

  9. 不同服务器数据库表连接查询修改,如何连接多个数据库,mysql中的服务器和查询两个表中的对方?...

    我期待从不同服务器连接两个不同的数据库.此外,我想运行一个查询,从两个数据库中获取数据到一个单一的结果.我正在使用mysql在PHP脚本中执行此操作.这里是如何很期待做[没有成功:)]如何连接多个数据 ...

  10. mysql管理数据 并上传至云端_怎样将MySQL数据库上传到服务器

    首先,需要将本地的数据库导出来,作为一个数据文件,以备稍后上传到服务器用,在本地登陆phpmyadmin控制面板: 登陆成功后,在左侧选择需要操作的数据库: 选择后,页面会自动刷新,然后再在右边点击[ ...

最新文章

  1. 如何确定我的Python Shell是在OS X上以32位还是64位模式执行?
  2. python 如何查看模块所有方法-Python查看模块(变量、函数、类)方法
  3. powerdesigner建立UML活动图
  4. SpringBoot中自定义拦截器
  5. ORA-00060 Deadlock detected
  6. 服务器上的电脑登不上oracle,Oracle服务器改计算机名后报错之解决方法
  7. 【动态规划】大厅安排 (ssl 1212)
  8. Quick BI的可视分析之路
  9. 开发人员的幸福:您需要知道的
  10. Bootstrap按钮组嵌套
  11. 计算机网络系统工程技术交底,技术交底内容大全
  12. Javascript插入排序
  13. 哈萨比斯首次解读AlphaZero竟被当场diss,他起身当面回击说…
  14. Fedora14 nfs配置 + tiny210 挂载nfs
  15. Python文件操作及函数
  16. 小米红米手机绕过内测申请,“偷渡”升级到开发版(内测版)详细教程,告别刷分和等待!
  17. 赛马问题--最全面的解析
  18. OpenTCS打造移动机器人交通管制系统(三)
  19. 使用 Mono.Cecil 辅助 Unity3D 手游进行性能测试
  20. 串口转 HID 键盘鼠标芯片 CH9329

热门文章

  1. Oracle PL/SQL 循环
  2. Android 实现 iBeacon
  3. 程序员的代码注释需要写么?
  4. WiFi通信字节乱码问题的产生原因及解决方法
  5. 计算机管理 压缩卷,windows10系统下c盘压缩卷只能压缩一半如何解决
  6. SpringBoot的Banner
  7. auto.js 基于控件的操作
  8. JavaScript中的浮点运算
  9. n1服务器系统和小钢炮,教你N1小钢炮系统设置中其他一些应用和服务器的设置的相关方法教程...
  10. String 源码浅析————终结篇