51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 6971|回复: 3
打印 上一主题 下一主题

mysql(关系型数据库管理系统)

[复制链接]
  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-6-12 16:03:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1.MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL
    最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Mana
    gement System,关系数据库管理系统) 应用软件之一。

    MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个
    大仓库内,这样就增加了速度并提高了灵活性。

    MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它
    分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小
    型网站的开发都选择 MySQL 作为网站数据库。

    由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。[1]

    外文名 MySQL 类    型关系型数据库管理系统 所    属Oracle[2]  开发公司 瑞典MySQL AB 公司

        例如 Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎
    的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQ
    L是开放源码软件,因此可以大大降低总体拥有成本。

    Linux作为操作系统,Apache和 Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服
    务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一
    分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合[3]  。

    系统特性编辑

    1.使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。

    2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、
    Windows等多种操作系统。


    3.为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、
    Ruby,.NET和 Tcl 等。

    4.支持多线程,充分利用 CPU 资源。

    5.优化的 SQL查询算法,有效地提高查询速度。

    6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到
    其他的软件中。

    7.提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表
    名和数据列名。

    8.提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。

    9.提供用于管理、检查、优化数据库操作的管理工具。

    10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

    11.支持多种存储引擎。

    12.MySQL 是开源的,所以你不需要支付额外的费用。

    13.MySQL 使用标准的 SQL数据语言形式。

    14.MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言。

    15.MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统。

    16.在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6[4]  新增)

    17.复制全局事务标识,可支持自我修复式集群(5.6[4]  新增)

    18.复制无崩溃从机,可提高可用性(5.6[4]  新增)

    19.复制多线程从机,可提高性能(5.6[4]  新增)

    存储引擎编辑

    MyISAMMySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务

    InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎

    BDB源 自 Berkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性

    Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成
    正比的内存空间。并且其内容会在 MySQL 重新启动时丢失

    Merge将一定数量的 MyISAM 表联合而成一个整体,在超大规模数据存储时很有用

    Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive 拥有高
    效的插入速度,但其对查询的支持相对较差

    Federated将不同的 MySQL 服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用

    Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据
    量大,安全和性能要求高的应用

    CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个 .csv 文件。
    这是一种普通文本文件,每个数据行占用一个文本行。CSV 存储引擎不支持索引。

    BlackHole:黑洞引擎,写入的任何数据都会消失,一般用于记录 binlog 做复制的中继

    EXAMPLE 存储引擎是一个不做任何事情的存根引擎。它的目的是作为 MySQL 源代码中的一个例子,
    用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE 存储引擎不支持
    编索引。

    另外,MySQL 的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。

    索引功能编辑

    索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据
    表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变
    慢。每修改数据记录,索引就必须刷新一次。为了在某种程度上弥补这一缺陷,许多 SQL 命令都有
    一个 DELAY_KEY_WRITE 项。这个选项的作用是暂时制止 MySQL 在该命令每插入一条新记录和每
    修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。
    在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE 选项的作用将非常明显。另外,
    索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。
    注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。

    从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但 MySQL 把同一个数据表里的索
    引总数限制为16个。

    1.InnoDB 数据表的索引

    与 InnoDB数据表相比,在 InnoDB 数据表上,索引对 InnoDB 数据表的重要性要大得多。在 InnoD
    B 数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。“数据行
    级锁定”的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。
    这种锁定将影响到(但不限于)SELECT、LOCKINSHAREMODE、SELECT、FORUPDATE 命令以及 I
    NSERT、UPDATE 和 DELETE 命令。出于效率方面的考虑,InnoDB 数据表的数据行级锁定实际发
    生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合
    适的索引可供锁定的时候才能发挥效力。

    2.限制

    如果 WHERE 子句的查询条件里有不等号(WHERE coloum !=),MySQL 将无法使用索引。类似地
    ,如果 WHERE 子句的查询条件里使用了函数(WHERE DAY(column)=),MySQL 也将无法使用
    索引。在 JOIN 操作中(需要从多个数据表提取数据时),MySQL 只有在主键和外键的数据类型相同
    时才能使用索引。

    如果 WHERE 子句的查询条件里使用比较操作符 LIKE 和 REGEXP,MySQL 只有在搜索模板的第一个
    字符不是通配符的情况下才能使用索引。比如说,如果查询条件是 LIKE 'abc%‘,MySQL 将使用索
    引;如果查询条件是 LIKE '%abc’,MySQL 将不使用索引。

    在 ORDER BY 操作中,MySQL 只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽
    然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快 ORDER BY 方面也没什么作用
    )。如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果
    某个数据列里包含的净是些诸如 “0/1” 或 “Y/N” 等值,就没有必要为它创建一个索引。

    索引类别


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
     楼主| 发表于 2018-6-12 16:04:44 | 只看该作者


    mysql -u root

    4.ERROR 1130: Host ’192.168.1.3′ is not allowed to connect to this MySQL server

    用mysql远程工具链接数据库报错,这个错误原因是没有开放远程链接功能,可以在mysql里面输入
    如下命令进行解决:GRANT ALL PRIVILEGES ON *.* TO ’root‘@’%' IDENTIFIED BY ’password’ WITH
    GRANT OPTION

    初学基础编辑

    连接 MySQL

    格式:mysql -h 主机地址 -u 用户名 -p 用户密码

    1.例1:连接到本机上的MYSQL。

    首先在打开 DOS 窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码
    ,如果刚安装好MYSQL,超级用户root 是没有密码的,故直接回车即可进入到 MySQL 中了,MySQL
    的提示符是:mysql>

    2.例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码
    为abcd123。则键入以下命令:

    mysql -h110.110.110.110 -uroot -pabcd123

    (注:u与root可以不用加空格,其它也一样)

    3.退出 MySQL 命令:exit (回车)

    注意:想要成功连接到远程主机,需要在远程主机打开MySQL远程访问权限

    方法如下:

    在远程主机中以管理员身份进入

    输入如下命令

    mysql>GRANT ALL PRIVILEGES ON *.* TO 'agui'@%'IDENTIFIEDBY '123' WITH GRANT OPTION;

    FLUSH PRIVILEGES;

    //赋予任何主机访问数据的权限

    mysql>FLUSH PRIVILEGES

    //修改生效

    agui为我们使用的用户名

    密码为 123

    即:在远程主机上作好设置,我们即可通过mysql -h110.110.110.110 -uagui -p123连接进远程主机

    修改密码

    格式:mysqladmin -u用户名 -p旧密码 password 新密码

    1.例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令

    mysqladmin -uroot -password ab12

    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

    2.例2:再将root的密码改为djg345。

    mysqladmin -uroot -pab12 password djg345

    增加新用户

    (注意:和上面不同,下面的因为是 MySQL 环境中的命令,所以后面都带一个分号作为命令结束符)

    格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

    例1、增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、
    修改、删除的权限。首先用以 root 用户连入 MySQL,然后键入以下命令:

    grant select,insert,update,delete on *.* to test1@“%” Identified by “abc”;

    但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一
    台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

    例2、增加一个用户 test2 密码为 abc,让他只可以在 localhost 上登录,并可以对数据库 mydb 进行查
    询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户
    即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访
    问了。

    grant select, insert, update, delete on mydb.* to test2@localhost identified by “abc”;

    如果你不想 test2 有密码,可以再打一个命令将密码消掉。

    grant select, insert, update, delete on mydb.* to test2@localhost identified by “”;

    下面来看看 MySQL 中有关数据库方面的操作。注意:必须首先登录到 MySQL 中,以下操作都是在
    MySQL 的提示符下进行的,而且每个命令以分号结束。

    操作技巧

    1.如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
    也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就 OK。

    2.你可以使用光标上下键调出以前的命令。但以前我用过的一个 MySQL 旧版本不支持。我用的是
    mysql-3.23.27-beta-win。

    显示命令

    1.显示数据库列表。

    show databases;

    刚开始时才两个数据库:mysql 和 test。mysql 库很重要它里面有 MySQL 的系统信息,我们改密码
    和新增用户,实际上就是用这个库进行操作。

    2.显示库中的数据表:

    use mysql; //打开库,学过 FOXBASE 的一定不会陌生吧

    show tables;

    3.显示数据表的结构:

    describe 表名;

    4.建库:

    create database 库名;

    5.建表:

    use 库名;

    create table 表名 (字段设定列表);

    6.删库和删表:

    drop database 库名;

    drop table 表名;

    7.将表中记录清空:

    delete from 表名;

    8.显示表中的记录:

    select * from 表名;




    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2018-6-12 16:05:18 | 只看该作者
    9.显示最后一个执行的语句所产生的错误、警告和通知:

    show warnings;

    10.只显示最后一个执行语句所产生的错误:

    show errors;

    实例

    drop database if exists school; //如果存在SCHOOL则删除

    create database school; //建立库SCHOOL

    use school; //打开库SCHOOL

    create table teacher //建立表TEACHER

    (

    id int(3) auto_increment not null primary key,

    name char(10) not null,

    address varchar(50) default ‘深圳',

    year date

    ); //建表结束

    //以下为插入字段

    insert into teacher values('','glchengang',’XX公司‘,'1976-10-10');

    insert into teacher values('','jack',’XX公司‘,'1975-12-23');

    注:在建表中:

    1.将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:no
    t null而且让他成为主字段primary key。

    2.将NAME设为长度为10的字符字段。

    3.将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等
    以后的文章再说了。

    4.将YEAR设为日期字段。

    如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本
    文件中假设为school.sql,然后复制到c:\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:

    mysql -uroot -p密码 < c:\school.sql

    如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释
    去掉即可使用)。

    文本转到数据库

    1.文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.

    例:

    3.rose 深圳二中 1976-10-10

    4.mike 深圳一中 1975-12-23

    2.数据传入命令 load data local infile “文件名” into table 表名;

    注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打开表所在的数据库

    或者登录数据库前将路径转移(cd)到要导入文本所在路径。

    备份数据库

    (命令在DOS的\mysql\bin目录下执行)

    mysqldump --opt school>school.bbb

    注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你
    会有新发现。

    自动备份 mysql 数据库的方法

    1、先是建立批处理文件,将以下代码另存为.bat文件,文件名最好为英文。注意下面的路径,以笔者自
    己的数据库为例,数据库安装在D盘下mysql\mysql下,备份位置在F:\beifen,后面的代码是日期[7]  。

    @echo off[8]

    color 0D

    MODE con: COLS=71 LINES=25

    title mysql数据库自动备份脚本(任务计划)--脚本作者:http://www。***。com

    set sou_dir="D:\mysql\Mysql\data"

    set obj_dir=F:\beifen\%date:~0,10%

    net stop mysql

    md %obj_dir%

    xcopy /e /y %sou_dir% %obj_dir%

    net start mysql

    @echo off&setlocal enabledelayedexpansion

    call,30

    echo. 30天前日期为:%D%

    echo. 删除30天以前备份......

    if exist F:\beifen\%D% rd /s /q F:\beifen\%D%

    echo 自动备份完成,程序将自动退出......

    还原/导入

    还原/导入数据库[9]  ,导入过程,进入 mysql 数据库控制台,如 mysql -u root -p

    mysql>use 数据库

    然后使用 source 命令,后面参数为脚本文件(如这里用到的.sql)

    mysql>source d:\dbname.sql

    如果提示找不到文件,输完 source 后,可以用鼠标把文件直接拖进命令行窗口

    启动跟踪文件

    mysqld --debug

    关闭服务器

    mysqladmin -u root shutdown

    启动MySQL服务

    mysqld --console

    安全设置编辑

    一、内部安全性-保证数据目录访问的安全

    1.1数据库文件。

    1.2日志文件。

    二、外部安全性-保证网络访问的安全

    2.1 MySQL 授权表的结构和内容

    2.2 服务器控制客户访问

    2.3 避免授权表风险

    2.4 不用 GRANT设置用户

    管理工具编辑

    可以使用命令行工具管理 MySQL 数据库(命令 mysql 和 mysqladmin),也可以从 MySQL 的网站下载图
    形管理工具 MySQL Administrator, MySQL Query Browser 和 MySQL Workbench。

    phpMyAdmin是由 php 写成的 MySQ L资料库系统管理程程序,让管理者可用 Web 界面管理 MySQL 资
    料库。

    phpMyBackupPro也是由 PHP 写成的,可以透过 Web 界面创建和管理数据库。它可以创建伪 cronjobs
    ,可以用来自动在某个时间或周期备份 MySQL 数据库。

    另外,还有其他的 GUI 管理工具,例如 mysql-front 以及 ems mysql manager, navicat等等。


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2018-6-12 16:05:46 | 只看该作者

    解决方法编辑

    MySQL 中文排序错误的解决方法

    方法1

    在 MySQL 数据库中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在 My
    SQL 的很多版本中都存在。如果这个问题不解决,那么 MySQL 将无法实际处理中文。

    出现这个问题的原因是:MySQL 在查询字符串时是大小写不敏感的,在编绎 MySQL 时一般以 ISO-8859
    字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是
    对于包含中文的字段加上 "binary" 属性,使之作为二进制比较,例如将 "name char(10)" 改成 "name ch
    ar(10)binary"。

    方法2

    如果你使用源码编译 MySQL,可以编译 MySQL 时使用 --with--charset=gbk 参数,这样 MySQL 就会直接
    支持中文查找和排序了。[5]

    授权问题编辑

    授权协议

    MySQL 遵守的不只是 GPL 协议,而是双授权模式(dual license)[10]  即你在遵守 GPL 协议的开源项目
    使用 MySQL,需要遵守 GPL 协议方能使用。如果你在非开源项目使用(即软件不打算开放源代码),且
    该软件用来销售,则需要向 MySQL 支付相应 license 费用。[11]

    文件手册bug

    在 5.5.31 版本时人们发现 Oracle 取消了其中的 GPL 协议,造成了一定的不安。有开发者在 MySQL 程序
    臭虫网站上举报这项授权错误问题,随即 MySQL 工程服务总监 Yngve Svendsen 在网站上坦言,这的确是
    一个文件臭虫,因为 man 手册程序重新编译时套用了错误的授权内容。[12]  不过仍然有人认为,Oracle
    取消开源授权改采商业授权的“这一天迟早是要到来的”,并寻求其他代替方案。[13]

    安装 MySQL 5.5编辑

    1、运行 mysql 安装文件;

    2、按 Next,然后选择安装方式,有 "Typical(默认)"、"Complete(完全)"、"Custom(用户自定义)
    ",选择第二个选项 "Custom",下一步, MySQL Server (mysql服务器), Developer Components (开发者部
    分), Debug Symbols (调试符号), Server data files (服务器数据文件) 默认;

    3、改变安装路径;原路径是"C:\Program Files\MySQL\MySQL Server 5.5\",也可以修改为:"E:\Progra
    m Files\MySQL Server 5.5\"。下一步,安装,会弹出窗口,点下一步,再点下一步,选择"Launch the MySql in
    stance Configuration Wizard",意思是启动MySQL实例配置向导,再点击Finish,再点下一步,Detailed Confi
    guration(详细配置)和Standard Configuration(标准配置),选择详细配置,下一步;

    4、选择服务器类型,"Developer Machine(开发测试类,mysql占用很少资源)"、"Server Machine(服
    务器类型,mysql占用较多资源)"、"DedicatedMySQL Server Machine(专门的数据库服务器,mysql占用
    所有可用资源)",根据自己的类型选择,测试软件选"Developer Machine",服务器选"Server Machine",
    下一步;

    5、选择创建 MySQL表时使用的表处理器,"Multifunctional Database"(通用多功能型,好,同时使用Inno
    DB和 MyISAM 储存引擎)、"Transactional Database Only"(服务器类型,专注于事务处理,主要使用 In
    noDB 只偶尔使用 MyISAM,一般)、"Non-Transactional DatabaseOnly"(非事务处理型,较简单,完全
    禁用 InnoDB 储存引擎,将所有服务器资源指派给 MyISAM 储存引擎),随自己的用途而选择。[14]

    替代方案编辑

    随着 MySQL 被 Oracle 收购,MySQL 的用户和开发者开始质疑开源数据库的命运,与此同时他们开始寻
    找替代品。


    有文章写到了放弃 MySQL 的五大理由:[15]

    MySQL 不如其它关系型数据库管理系统那样成熟;

    MySQL 是开源的...但只有近似而已;

    MySQL 的性能无法与竞争对手相提并论;

    MySQL 是 Oracle 所有的,而不是社区驱动的;

    越来越多的强劲对手。

    MariaDB

    从 MySQL 转向 MariaDB的代表厂家:谷歌(2013年9月)、RedHat(2013年6月)、维基百科(2013年4月)

    MySQL 在 2008 年被Sun以10亿美金所收购,MySQL 创始人 Michael Widenius 则不满 Sun 开发团队脚步
    过慢,愤而离职成立开源数据库联盟,另外从现有 MySQL 程序代码中,开发出另一个延伸分支版本,也
    就是名为玛莉亚数据库的企业级开源数据库[13]  。

    玛莉亚数据库如同 MySQL 的影子版本,玛莉亚数据库是 MySQL 的一个分支版本(branch),而不是衍
    生版本(folk),提供的功能可和 MySQL 完全兼容。

    PostgreSQL

    从 MySQL 转向 PostgreSQL的代表厂家:苹果(2011年)

    PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统)。PostgreSQL支持大部分 SQL标准并
    且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQ
    L 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语
    言。并且,因为许可证的灵活,任何人都可以以任何目的免费使用、修改、和分发 PostgreSQL,不管
    是私用、商用、还是学术研究使用。

    PostgreSQL 也受 NoSQL 思想的启发,希望能够在今后可以给使用者更多可定制可调节的功能(不是说
    这个成熟的关系性数据库系统要向 NoSQL 转变)。

    NoSQL

    NoSQL(NoSQL = Not Only SQL),意即“不仅仅是 SQL”,是一项全新的数据库革命性运动。NoSQL指的
    是非关系型的数据库。随着互联网 web2.0网站的兴起,传统的关系数据库在应付 web2.0 网站,特别
    是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问
    题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

    其代表的开源软件如:Membase、MongoDB、Hypertable、Apache Cassandra、CouchDB等。

    Oracle 免费版

    Oracle自 Oracle 10g 后推出对应的免费版。

    远程访问 MySQL编辑

    1:将 localhost 改成 "%"

    修改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改成"%"

    mysql>use mysql;

    mysql>update user set host = '%' where user = 'root';

    mysql>select host, user from user;

    mysql>FLUSH PRIVILEGES;

    2:使用 myuser/mypassword 从任何主机连接到 mysql 服务器:

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    使用myuser/mypassword从ip为192.168.225.166的主机连接到mysql服务器:

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH
    GRANT OPTION;

    3:泛授权

    mysql -h localhost -u root

    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //赋予任何主机上以root
    身份访问数据的权限

    mysql>FLUSH PRIVILEGES;[16]

    MySQL Server 新特性编辑

    表和索引的分区

    行级复制

    MySQL 基群基于磁盘的数据支持

    MySQL 集群复制

    增强的全文本搜索函数

    增强的信息模式(数据字典)

    可插入的 API

    服务器日志表

    XML(标准通用标记语言的子集)/ XPath支持

    实例管理器

    表空间备份

    mysql_upgrade 升级程序

    内部任务/事件调度器

    新的性能工具和选项如 mysqlslap[3]

    MySQL PHP 语法

    MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA 和 PHP。 在这些语言中,MySQL 在 PHP 的 web
    开发中是应用最广泛。

    在本教程中我们大部分实例都采用了PHP语言。如果你想了解 MySQL 在 PHP 中的应用,可以访问我们
    的PHP 中使用 MySQL 介绍。

    PHP 提供了多种方式来访问和操作 MySQL 数据库记录。PHP MySQL 函数格式如下:

    mysql_function(value,value,...);

    以上格式中function部分描述了mysql函数的功能,如

    mysqli_connect($connect);

    mysqli_query($connect,"SQLstatement");

    mysql_fetch_array()

    mysql_connect(),mysql_close()
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-6 09:27 , Processed in 0.068806 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表