mysql数据库的组成(Mysql数据库的安全配置、实用技巧)
本文目录
Mysql数据库的安全配置、实用技巧
1、前言
My**L 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问My**L 数据库的程序,特别是与PHP更是黄金组合,运用十分广泛。
由于My**L是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以在我们自己的使用环境下应该进行进一步的安全加固。作为一个My**L的系统管理员,我们有责任维护My**L数据库系统的数据安全性和完整性。
My**L数据库的安全配置必须从两个方面入手,系统内部安全和外部网络安全,另外我们还将简单介绍编程时要注意的一些问题以及一些小窍门。
2、系统内部安全
首先简单介绍一下My**L数据库目录结构。My**L安装好,运行了mysql_db_install脚本以后就会建立数据目录和初始化数据库。如果我们用My**L源码包安装,而且安装目录是/usr/local/mysql,那么数据目录一般会是/usr/local/mysql/var。数据库系统由一系列数据库组成,每个数据库包含一系列数据库表。My**L是用数据库名在数据目录建立建立一个数据库目录,各数据库表分别以数据库表名作为文件名,扩展名分别为MYD、MYI、frm的三个文件放到数据库目录中。
My**L的授权表给数据库的访问提供了灵活的权限控制,但是如果本地用户拥有对库文件的读权限的话,攻击者只需把数据库目录打包拷走,然后拷到自己本机的数据目录下就能访问窃取的数据库。所以My**L所在的主机的安全性是最首要的问题,如果主机不安全,被攻击者控制,那么My**L的安全性也无从谈起。其次就是数据目录和数据文件的安全性,也就是权限设置问题。
从My**L主站一些老的binary发行版来看,3.21.xx版本中数据目录的属性是775,这样非常危险,任何本地用户都可以读数据目录,所以数据库文件很不安全。3.22.xx版本中数据目录的属性是770,这种属性也有些危险,本地的同组用户既能读也能写,所以数据文件也不安全。3.23.xx版本数据目录的属性是700,这样就比较好,只有启动数据库的用户可以读写数据库文件,保证了本地数据文件的安全。
如果启动My**L数据库的用户是mysql,那么象如下的目录和文件的是安全的,请注意数据目录及下面的属性:
shellls -l /usr/local/mysql
total 40
drwxrwxr-x 2 root root 4096 Feb 27 20:07 bin
drwxrwxr-x 3 root root 4096 Feb 27 20:07 include
drwxrwxr-x 2 root root 4096 Feb 27 20:07 info drwxrwxr-x 3 root root 4096 Feb 27 20:07 lib drwxrwxr-x 2 root root 4096 Feb 27 20:07 libexec drwxrwxr-x 3 root root 4096 Feb 27 20:07 man drwxrwxr-x 6 root root 4096 Feb 27 20:07 mysql-test drwxrwxr-x 3 root root 4096 Feb 27 20:07 share drwxrwxr-x 7 root root 4096 Feb 27 20:07 sql-bench drwx------ 4 mysql mysql 4096 Feb 27 20:07 var
shellls -l /usr/local/mysql/var
total 8
drwx------ 2 mysql mysql 4096 Feb 27 20:08 mysql
drwx------ 2 mysql mysql 4096 Feb 27 20:08 test
shellls -l /usr/local/mysql/var/mysql
total 104
-rw------- 1 mysql mysql 0 Feb 27 20:08 columns_priv.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 columns_priv.MYI
-rw------- 1 mysql mysql 8778 Feb 27 20:08 columns_priv.frm
-rw------- 1 mysql mysql 302 Feb 27 20:08 db.MYD
-rw------- 1 mysql mysql 3072 Feb 27 20:08 db.MYI
-rw------- 1 mysql mysql 8982 Feb 27 20:08 db.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 func.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 func.MYI
-rw------- 1 mysql mysql 8641 Feb 27 20:08 func.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 host.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 host.MYI
-rw------- 1 mysql mysql 8958 Feb 27 20:08 host.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 tables_priv.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 tables_priv.MYI
-rw------- 1 mysql mysql 8877 Feb 27 20:08 tables_priv.frm
-rw------- 1 mysql mysql 428 Feb 27 20:08 user.MYD
-rw------- 1 mysql mysql 2048 Feb 27 20:08 user.MYI
-rw------- 1 mysql mysql 9148 Feb 27 20:08 user.frm
如果这些文件的属主及属性不是这样,请用以下两个命令修正之:
shellchown -R mysql.mysql /usr/local/mysql/var
shellchmod -R go-rwx /usr/local/mysql/var
My**L由哪些部分组成
之前画了一个图,从这里大概可以看出My**L有哪些模块组成。
宏观上看:server层、存储引擎层。这两个部分里面有细分了很多功能模块。
mysql数据库表间关系图怎么查看(数据库表与表之间的关系图)
mysql数据库表间的关系图可以通过navicat查看:
第一步:下载navicat打开;
第二步:点击navicat界面最右下角标注的按钮即可查看关系图。
最新的My**LWorkbench已经完全包含了数据库建模与设计、数据库**L开发和数据库管理与维护等功能。
Mysql数据库-----表
sh.qihoo2018-04-0708:20
1、定义:表(table)是数据库最基本的组成单元,数据库是用来存储数据的,数据库中有很多表,每一个表都是一个独立的单元,表也是一个结构化的文件,由行和列组成,行称为数据或记录,列称为字段,字段又包含:字段名称、字段类型、长度、约束。
2、创建表
(1)、语法格式:createtable表名称(字段名类型(长度)约束);
(2)、My**L常用数据类型
VARCHAR:可变长度字符串(VARCHAR(3)表示存储的数据长度丌能超过3个字符长度)
CHAR:定长字符串(CHAR(3)表示存储的数据长度丌能超过3个字符长度)
INT:整数型(INT(3)表示最大可以存储999)
BIGINT:长整型(对应java程序中的long类型)
FLOAT:浮点型单精度(FLOAT(7,2)表示7个有效数字,2个有效小数位)
DOUBLE:浮点型双精度(DOUBLE(7,2)表示7个有效数字,2个有效小数位)
DATE:日期类型(实际开发中,常用字符串代替日期类型)
BLOB:二进制大对象BinaryLargeObject(专门存储图片、视频、声音等数据)
CLOB:字符型大对象CharacterLargeObject(可存储超大文本,可存储4G字符串)
VARCHAR与CHAR对比:
都是字符串
VARCHAR比较智能,可以根据实际的数据长度分配空间,比较节省空间;但在分配的时候需要相关判断,效率低。
CHAR不需要劢态分配空间,所以执行效率高,但是可能会导致空间浪费
若字段中的数据不具备伸缩性,建议采用CHAR类型存储
若字段中的数据具备很强的伸缩性,建议采用VARCHAR类型存储
My**L的数据库文件有几种扩展名及作用分别是什么
在My**L中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件。
1、“.frm”文件 与表相关的元数据(meta)信息都存放在“.frm”文件中,包括表结构的定义信息等。不论是什么存储引擎,每一个表都会有一个以表名命名的“.frm”文件。所有的“.frm”文件都存放在所属数据库的文件夹下面。
2、“.MYD”文件“ .MYD”文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm”文件在一起。
3、“.MYI”文件 “.MYI”文件也是专属于MyISAM存储引擎的,主要存放MyISAM表的索引相关信息。对于MyISAM存储来说,可以被cache的内容主要就是来源于“.MYI”文件中。每一个MyISAM表对应一个“.MYI”文件,存放于位置和“.frm”以及“.MYD”一样。
管理工具:
可以使用命令行工具管理 My**L 数据库(命令 mysql 和 mysqladmin),也可以从 My**L 的网站下载图形管理工具 My**L Administrator, My**L Query Browser 和 My**L Workbench。
phpMyAdmin是由 php 写成的 My** L资料库系统管理程程序,让管理者可用 Web 界面管理 My**L 资料库。
phpMyBackupPro也是由 PHP 写成的,可以透过 Web 界面创建和管理数据库。它可以创建伪 cronjobs,可以用来自动在某个时间或周期备份 My**L 数据库。另外,还有其他的 GUI 管理工具,例如 mysql-front 以及 ems mysql manager, navicat等等。
以上内容参考:百度百科-my**L
更多文章:
us下载电视剧怎么是php格式的(为什么下载的东西都会变成.PHP格式的~~)
2026年4月15日 22:00
javascript入门经典6(JavaScript入门经典的作者简介)
2026年4月15日 21:40
c语言开发安卓(用c语言可以开发app吗(c语言能开发安卓app吗))
2026年4月15日 21:20
mysql数据库的组成(Mysql数据库的安全配置、实用技巧)
2026年4月15日 21:00
不学c语言直接学c++可以吗(不会C语言,可不可以直接学C++)
2026年4月15日 20:20
linux真机安装教程(win10和linux双系统的安装教程)
2026年4月15日 20:00




