MySQL 文件系统

MySQL 文件系统,第1张

实际上 这不是通常意义上的文件系统 它没有磁盘空间 而是使用MySQL 守护程序来存储数据 可以把SQL 表和一些函数通过文件系统来实现 一 怎样实现? 让我们来看使用实例 [root@localhost /root]# mount t corbafs o `cat /tmp/mysqlcorbafs ior` none /mnt/mysql/ [root@localhost /root]# mount /dev/hda on / type ext (rw) none on /proc type proc (rw) none on /dev/pts type devpts (rw gid= mode= ) /dev/hda on /mnt/win type vfat (rw mode= ) /dev/hda on /mnt/linux type vfat (rw noexec nosuid nodev mode= ) none on /mnt/mysql type corbafs (rw IOR: e d b c a f f c d a e a e e e bc a ef ae c c f) [root@localhost /root]# ls la /mnt/mysql/ total r xr xr x root root dets : uptime dr xr xr x root root dets : test dr xr xr x root root dets : mysql [root@localhost /root]# cat /mnt/mysql/ uptime [root@localhost /root]# cat /mnt/mysql/mysql/user/Host cpq spam ee cpq spam ee localhost localhost localhost localhost localhost localhost [root@localhost /root]# cat /mnt/mysql/mysql/user/Insert_priv N N N N N N Y Y [root@localhost /root]# umount /mnt/mysql/ 二 为什么要这样做呢? 在一些情形下 这样做能让工作更加轻松 MySQL 和文件系统都能叫做数据库 但是有着绝然不同的概念和优缺点 在文件系统里 对象能很快而且很容易找到 即使改变名字也能很快找到 每一个初学者大概都应该学会move/copy/rename/delete这样的 *** 作 但是SQL 不一样 他通过应用程序来 *** 纵存储在文件系统上的数据 而MySQL 文件系统把SQL 做到了用户级 用户能用他们知道的方式来 *** 作数据库 任何一个新产品需要通过网络存取数据的话 必须支持一些协议以及可能的其他办法通过网络存取文件系统 MySQL 表就可以通过这样的方式来存取 即使MySQL 没有移植到对应的平台 备份和版本控制 普通的文件系统通过任何备份软件就可以实现 数据可以通过diff来比较并且用cvs 来控制版本 更短的编程时间 有时候人们需要保存简单的数据 像当前日期或者站点名字 这些数据很少改变 普通的方法需要使用 连接服务器 > 选择数据库 > 执行命令 > 存储结果 而使用 MySQL 文件系统后 只需要一句话 (PHP实现) include(¨/mountpoint/database/table/field¨); 或者 换一种方式表达 include(¨/mnt/mysql/sitedata/topic/todaytopic¨); 这样就很容易理解 也占用了较少的空间 还可以通过SAMBA 来共享 /mnt/mysql 达到直接修改SQL 数据库的目的 能直接写文本到数据库 或者使用拷贝/粘贴功能把放入数据库 这要比用Perl 或者PHP 写几百行程序省力多了 三 性能如何? 在发表这篇文章的时候 这个文件系统还处于原型开发阶段 因此 速度还不是很理想 如果到了正式发布的时候 一些数据库功能会比使用 SQL 要快 当然 很多还是没法和SQL 相比 无论是性能上还是功能上 很多复杂的查询依然需要通过SQL 语句来完成 但是 这样节省了很多开发和培训的时间 所以在效率上来说也是一种节省 四 支持的表类型 目前这个文件系统支持所有的表类型 MyISAM DBD HEAP ISAM 五 其他的特色 在第一步开发中实现的还只是只读 很快会有能读写的版本出来 目前的计划是把数据库对象映射成文件和目录对象 让我们来看看例子 < #建立表 CREATE TABLE invoice ( invoice_id int( ) unsigned NOT NULL auto_increment invoice_no int( ) unsigned DEFAULT NOT NULL payee char( ) DEFAULT NOT NULL PRIMARY KEY (invoice_id) KEY payee (payee) ); # 插入数据 INSERT INTO invoice VALUES ( Company AB ); INSERT INTO invoice VALUES ( Company CD ); INSERT INTO invoice VALUES ( Company EF ); < 因为 MySQL 没有办法使用记录号 所以我们必须建立主键 就有了以下的目录结构 /mountpoint/database/table/primary_key/field 这样 每个列出现在不同的文件行之中 文件树的结构如下 /mnt/mysql/mydata/invoice/ /invoice_id /mnt/mysql/mydata/invoice/ /invoice_no /mnt/mysql/mydata/invoice/ /payee /mnt/mysql/mydata/invoice/ /invoice_id /mnt/mysql/mydata/invoice/ /invoice_no /mnt/mysql/mydata/invoice/ /payee /mnt/mysql/mydata/invoice/ /invoice_id /mnt/mysql/mydata/invoice/ /invoice_no /mnt/mysql/mydata/invoice/ /payee 另外 还有第二个办法可以使用 /mountpoint/database/table/ table 和 /mountpoint/database/table/primary_key/ record /mnt/mysql/mydata/invoice/ table /mnt/mysql/mydata/invoice/ / record /mnt/mysql/mydata/invoice/ /invoice_id /mnt/mysql/mydata/invoice/ /invoice_no /mnt/mysql/mydata/invoice/ /payee /mnt/mysql/mydata/invoice/ / record /mnt/mysql/mydata/invoice/ /invoice_id /mnt/mysql/mydata/invoice/ /invoice_no /mnt/mysql/mydata/invoice/ /payee /mnt/mysql/mydata/invoice/ / record /mnt/mysql/mydata/invoice/ /invoice_id /mnt/mysql/mydata/invoice/ /invoice_no /mnt/mysql/mydata/invoice/ /payee 这些文件是隐含的 以防重复 主要用来方便地通过文本文件浏览器来查看 现在 在那些需要使用SQL 语句搜索最小 最大 最后等数据 可以通过符号连接来实现了 /mountpoint/database/table/primary_key/ max 或者 /mnt/mysql/mydata/invoice/invoice_id/ max 或者指向 /mountpoint/database/table/field 和 /mnt/mysql/mydata/invoice/ 同样的就可以返回一行的 min/max/sum/avg 等数值 这能很快并且很容易地实现 /mnt/mysql/mydata/ keys/ /mnt/mysql/mydata/ keys/invoice_id/ /mnt/mysql/mydata/ keys/payee/ 符号连接到主键 /mnt/mysql/mydata/ keys/ primary_key/ 实际上指向 /mnt/mysql/mydata/ keys/invoice_id/ 还有一些隐藏文件提供键类型 /mnt/mysql/mydata/ keys/invoice_id/ type /mnt/mysql/mydata/ keys/payee/ type 第一个文内容为 ¨PRIMARY KEY¨ 第二个为 ¨KEY¨ 另外还可以用索引来排序记录 如果读取下面的目录 /mnt/mysql/mydata/ keys/payee/asc/ PHP 的readdir() 函数就以升序返回数据的符号连接 另外还有一些全局函数 /mountpoint/ version /mountpoint/ last_insert_id /mountpoint/ uptime /mountpoint/database/ raid ( / ) /mountpoint/database/ type (ISAM/MyISAM/HEAP/DBD) /mountpoint/database/ tables /mountpoint/database/table/ created /mountpoint/database/table/ last_updated /mountpoint/database/table/ last_checked /mountpoint/database/unt 六 写权限? 在开发的第二阶段 会有措施执行SQL 语句 现在的思路是 采用目录 /mountpoint/mand/ 然后执行命令 把SQL 语句作为目录建立 或者建立目录把SQL 语句作为文件放入这个目录 两个方案都有优点 第一个方案可以重新使用SQL 语句 但是这样的目录名实在不敢令人苟同 第二个方案采用信号量文件 语句执行完毕就删除这个文件 没有任务使用时 目录也被删除 对于那些慢速的查询响应 可以选择timeout 的时间 七 权限管理 在权限管理方面 可以使用Unix 的权限管理方式 这样的方案看来是最好的 lishixinzhi/Article/program/MySQL/201311/29464

 1)首先检查系统中是否已经安装了MySQL

在终端里面输入 sudo netstat -tap | grep mysql

若没有反映,没有显示已安装结果,则没有安装。若如下显示,则表示已经安装

Linux下MySQL的安装与配置 三联

2)如果没有安装,则安装MySQL

在终端输入 sudo apt-get install mysql-server mysql-client

在此安装过程中会让你输入root用户(管理MySQL数据库用户,非Linux系统用户)密码,按照要求输入即可。如下所示:

3)测试安装是否成功:

在终端输入 sudo netstat -tap | grep mysql

4)也可通过登录MySQL测试

在终端输入 mysql -uroot -p 接下来会提示你输入密码,输入正确密码,即可进入。

5)MySQL的一些简单管理:

启动MySQL服务: sudo start mysql

停止MySQL服务: sudo stop mysql

修改 MySQL 的管理员密码: sudo mysqladmin -u root password newpassword

设置远程访问(正常情况下,mysql占用的3306端口只是在IP 127001上监听,拒绝了其他IP的访问(通过netstat可以查看到)。取消本地监听需要修改 mycnf 文件:):

sudo vi /etc/mysql/mycnf

bind-address = 127001 //找到此内容并且注释

6)MySQL安装后的目录结构分析(此结构只针对于使用apt-get install 在线安装情况):

数据库存放目录: /var/lib/mysql/

相关配置文件存放目录: /usr/share/mysql

相关命令存放目录: /usr/bin(mysqladmin mysqldump等命令)

启动脚步存放目录: /etc/rcd/initd/

7)MySQL图形化管理软件

一般使用的有两个比较好,一个开源,一个商业收费:

开源:MySQL Workbench (具体使用介绍随着我的使用,我会慢慢总结)

商业:Navicat (收费的,有30天体验,之后我相信大家会有办法的)

第1章 数据库系统绪论 1

11 数据与数据管理 1

111 数据 2

112 数据管理 3

12 数据库与数据库系统 7

121 数据库 7

122 数据库管理系统 7

123 数据库系统 9

124 数据库系统主要研究领域 10

13 数据模型 11

131 模型与数据模型 11

132 概念数据模型 13

133 结构数据模型 16

14 数据库体系结构 22

141 数据模式 22

142 数据库的三级模式结构 23

143 数据库的二级映射功能 25

144 三级模式结构和二级映射功能的意义 25

15 数据库技术在计算机领域中的地位和意义 26

151 数据库在计算机领域中的学科地位 26

152 数据库在计算机应用领域中发挥的作用 27

153 数据库保持强劲发展势头 27

154 数据库是一个国家或民族信息现代化的重要标志 27

本章知识点总结 28

习题1 30

第2章 关系数据模型与关系运算 32

21 关系数据模型 32

211 关系与关系表 32

212 关系数据结构 35

213 关系数据 *** 作 36

214 关系数据完整性约束 39

22 关系代数 40

221 基于更新的基本运算 40

222 基于查询的基本运算 41

223 关系代数(系统) 43

224 关系代数组合运算 44

23 关系演算 49

231 元组关系演算 49

232 域关系演算 51

233 关系运算的安全性 52

234 关系代数、元组演算、域演算的等价性 53

24 三种典型的关系数据库语言 54

241 基于关系代数的语言——ISBL 54

242 基于元组关系演算语言——ALPHA语言 56

243 基于域演算的语言——QBL 58

本章知识点总结 63

习题2 64

第3章 关系数据库语言SQL 66

31 SQL概述 66

311 SQL的产生与主要标准 66

312 SQL语言功能特征 68

313 SQL语言基本组成 69

314 SQL语句与数据类型 70

32 数据定义 71

321 SQL模式定义 72

322 基本表定义 72

323 索引定义 75

33 数据查询 76

331 SQL的映像语句 77

332 单表查询 78

333 多表查询 82

334 查询中的函数与表达式 87

34 数据更新 90

341 数据删除 90

342 数据插入 91

343 数据修改 92

35 视图管理 92

351 视图定义 93

352 视图 *** 作 95

36 数据控制 96

361 授予权限 97

362 收回权限 98

37 嵌入式SQL 99

371 主语言语句与SQL语句 100

372 主语言变量与SQL变量 101

373 游标语句使用 102

374 嵌入式SQL的C程序实例 103

375 动态SQL 106

本章知识点总结 108

习题3 109

第4章 关系数据库的查询优化处理 111

41 查询处理与查询优化 111

42 查询优化技术 114

421 手动优化与自动优化 114

422 查询优化器 114

43 关系代数等价变换规则 116

431 同类运算间的等价公式 117

432 不同类运算间的等价公式 117

44 查询的优化策略和算法 119

本章知识点总结 124

习题4 125

第5章 关系模式设……

以上就是关于MySQL 文件系统全部的内容,包括:MySQL 文件系统、如何在linux下安装mysql数据库并配置、2013专升本计算机类考试大纲 求数据结构 和数据库系统的重点目录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9362819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存