linux的mysql操作.docx

上传人:b****5 文档编号:30211927 上传时间:2023-08-07 格式:DOCX 页数:31 大小:787.78KB
下载 相关 举报
linux的mysql操作.docx_第1页
第1页 / 共31页
linux的mysql操作.docx_第2页
第2页 / 共31页
linux的mysql操作.docx_第3页
第3页 / 共31页
linux的mysql操作.docx_第4页
第4页 / 共31页
linux的mysql操作.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

linux的mysql操作.docx

《linux的mysql操作.docx》由会员分享,可在线阅读,更多相关《linux的mysql操作.docx(31页珍藏版)》请在冰豆网上搜索。

linux的mysql操作.docx

linux的mysql操作

Linux系统下MySQL的配置与应用

网络数据库服务就是以后台运行的数据库管理系统为基础,加上一定的前台程序,为网络用户提供数据的存储、查询等功能的服务,广泛地应用在Internet网站、搜索引擎、电子商务、电子政务和网上教育等各个方面。

MySQL的概述

MySQL是一个高性能、多线程、多用户、建立在客户/服务器结构上的关系型数据库管理系统(RDBMS)。

MySQL是“世界上最受欢迎的开放源代码数据库”,当前全世界有超过600万的系统使用MySQL(引自MySQL官方网站)。

MySQL的主要特征如下。

✧性能高效而稳定,MySQL几乎比当前可用的其他所有数据库的性能都不差,因此Yahoo、Google、Cisco、HP和NASA等都采用了它作为自己的数据库引擎。

✧开放源代码,MySQL是自由的开放源代码产品,可以在GPL下畅通使用。

✧多用户支持,MySQL可有效地满足50-1000个并发用户的访问,并且在超过600个用户的限度的情况下,MySQL的性能并没有明显的下降。

✧多线程,MySQL使用核心线程的完全多线程,这意味着可以采用多CPU体系结构。

✧开放性,支持ANSISQL-99标准,适用于多种操作系统(如Linux、Solaris、FreeBSD、OS/2、MacOS以及Windows95/98/Me/2000/XP和WindowsNT等),可在多种体系结构(如Intelx86、Alpha、SPARC、PowerPC和IA64等)上运行。

✧广泛的应用程序支持,有c、c++、Java、Perl、PHP和Python等多种客户工具和API的支持。

✧支持事务处理、行锁定、子查询、外键和全文检索等功能。

✧支持大数据库处理,可对某些包含50,000,000个记录的数据库使用MySQL。

✧有灵活且安全的权限和口令系统,并且允许对其他主机的认证。

MySQL是一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和多种不同的客户程序及库组成。

MySQL的安装

1.MySQL客户端验证

RedHatEnterpriseLinux4默认只是安装了MySQL的客户端程序。

可采用命令

rpm-qa|grepmysql查看其安装了何种版本。

可见,mysql是客户程序及共享库,其对应的RPM包文件是:

mysql-4.1.20-1.RHEL4.1

mysqlclient10是用来兼容3.23.x版本客户端库,其对应的RPM包文件为mysqlclient10-3.23.58-4.RGEL4.1.i386.rpm

2.MySQL数据库安装

用第4张光盘,先安装perl-DBD-MySQL-2.9004-3.1.i386.rpm

安装以下相关的MySQL服务器的RPM包文件

安装过程:

MySQL服务的配置和使用

使用前要求先启动mysql服务:

修改MySQL管理员的口令

第一次访问数据库服务器的用户只能是MySQL管理员,即root用户(注意该用户不同于Linux系统的root用户)。

默认情况下,root用户初始化的密码为空,因此,从本地客户端连接MySQL时,只需键入mysql。

采用quit命令退出MySQL命令状态,用mysqladmin命令修改MySQL管理员的密码。

可见,修改后再想直接用mysql命令连接已经不可能了。

修改后,要连接MySQL服务器,救必须用以下格式命令:

mysql[-h主机名或IP地址][-u用户名][-p]

再想修改root用户密码为:

poiuyt,操作如下:

数据库的创建和删除

MySQL安装程序自动创了两个数据库mysql和test,test供用户练习使用,而mysql中包含了5个MySQL授权表。

1.创建数据库

creatdatabase数据库名称

【例】创建一个名为xsxk的学生选课数据库:

必须注意:

默认情况下,所创建的数据库是以目录的形式保存在/var/lib/mysql目录中,系统不允许两个数据库同名,并且必须有足够的权限才能创建它。

查看MySQL当前所有的可用数据库命令:

2.选择数据库

选择一个数据库,使它成为所有事务的当前数据库,使用以下SQL语句:

use数据库名称;

【例】选择前面创建的xsxk数据库:

3.删除数据库

使用以下SQL语句:

dropdatabase数据库名称

【例】删除前面创建的xsxk数据库:

表的创建、复制、删除和修改

关系数据库中,数据库用来将多个表有机地组织起来,而数据库中的表用来存储数据。

每个数据库表由行和列组成,每个行为一个记录,每个记录可包含多个列(称为字段)。

MySQL使用SQL的数据定义语言(DDL)来创建,删除和修改表结构。

1.创建表

使用的SQL语句格式:

createtable表名称(字段1,字段2,…字段n,[表级约束])[TYPE=表类型];

详见P250。

【例】要在学生选课数据库中创建一个名为student的表(存放学生的有关信息)。

创建后,用discribe命令来查看所创建表的结构。

要注意两个问题:

1)对每个记录而言,主键都是不变的、唯一的标识符。

该字段中不允许有重复的值或者NULL值。

并且MySQL会自动为该表的主键建立索引。

2)如果没有指定表的类型,MySQL就默认创建表,如student的类型为MYISAM,并且在/var/lib/mysql/xsxk目录下创建student.frm(表定义文件)、student.MDY(数据文件)和student.MYI(索引文件)3个文件。

2.复制表

用SQL语句来复制表结构

createtable新表名称like源表名称;

【例】将表student复制为另一个表xstable使用命令:

showtables命令是——显示当前数据库中所有表。

必须注意:

,也可以复制表结构及其内容,但该命令不能从源表中复制键,而

命令却可以做到。

3.删除表

MySQL中删除一个或多个表的SQL语句格式为:

droptable表名称1[,表名称2,…];

该命令将表的结构及表中的所有数据都会被删除。

故要小心使用。

4.修改表

使用alter语句来进行表的结构修改,如修改表的字段、添加、删除表的字段,创建或撤销索引,更改表的名称和类型等。

基本格式如下:

altertable表名称更改动作1[,更改动作2,…];

更改动作是由ADD、DROP、CHANGE、ALTER和MODIFY等关键字以及有关字段的定义组成。

1)添加字段

【例】要在表xstable中添加一个字段saddress,使用命令:

2)更改字段名和字段类型

【例】要将表xstable中字段saddress的名称改为sremark,并将该字段类型改为text,使用命令:

注意,即使仅仅改变字段名而不改变字段类型,change子句后面也必须给出该字段的字段类型。

【例】要将表xstable中字段sremark的名称改为saddress

如果仅仅要改变字段的类型而不更改它的名字,可使用更简单的modify子句。

需注意:

当把一个字段的类型更改为另一种类型时,MySQL自动尝试把字段中的数据转变为新的类型。

3)删除字段

【例】要删除表xstable中的字段sremark,可使用下面的命令。

4)更改表名称

【例】将student表的名称更改为xs,可使用下面命令。

实际中,使用一条altertable语句就可以完成多项更改任务。

【例】要为表xs增加一个saddress字段,同时将字段sbirthday名称改为sage,类型改为int,并且把表xs的名称改为xstable,可使用下面的命令。

技巧:

在每次修改表后,应该使用describe命令来检查修改的结果。

表中数据的插入、删除和修改

创建了数据库和表,下一步就是在表中存储数据。

在MySQL中,通常需要使用SQL的数据操纵语言(DML)来插入、删除和修改表中的记录。

1.插入记录

表中插入记录可以使用下面基本格式的SQL语句。

insertinto表名称(字段名1,字段名2,…)

values(字段1的值,字段2的值,…);

【例】要在表student中插入一组数据,可使用下面的命令。

在插入记录后,可使用select语句来查看所插入的记录是否正确。

插入记录的注意事项:

如果在insert语句中给出了要插入记录的各个字段名,那么各字段值仅需与各个字段名的顺序相一致,与表中的顺序(可用describe命令查看)可以不同。

但当使用缩写格式时,各字段值的顺序则必须与表中的顺序相一致。

【例】要插入与前面例子中相同的记录,可使用下面命令:

如果字段名列表中没有给出表中的某些字段,当然在字段值列表中也不应给出这些字段的值,那么这些字段的值将会被自动设置为默认值,如:

可见,在上面的例子中,由于没有指定ssex字段,因此所插入记录的该字段值将被设为缺省值‘t’。

同样也没有指定sdepa字段,尽管该字段没有定义缺省值,但由于其数据类型为varchar,因此MySQL自动将所插入记录的该字段值设为NULL。

在一个单独的insert的语句中使用多个values字句,可插入多条记录。

【例】可使用insert的命令插入以下两个记录:

 

2.删除记录

在MySQL中,从表中删除记录使用下面基本格式命令

deletefrom表名称where条件表达式;

【例】要删除表student中,sno字段值为‘0321002’的记录。

使用带where子句的delete语句,可以删除与指定条件相匹配的记录。

只要条件满足,可以删除一条记录或多条记录。

【例】从表student中删除sno字段值的前4位为‘0322’的所有记录。

如果要删除表中所有记录,则可以使用不带where子句的delete命令。

另一种删除表中所有记录的方法是使用truncate命令。

truncate命令不管表中有多少条记录,它都是删除表,然后重建表;而delete命令是将表中所有记录一个个删除。

比较而言,truncate命令比delete命令要快,特别是在表中记录非常多时尤为明显。

3.修改记录

表中数据经常要进行更新,为此,MySQL提供了用于修改记录中数据的SQL语句——update,该语句的基本格式为:

update表名称set字段名1=字段值1[,字段名2=字段值2…]where条件表达式;

【例】要修改表student中的sno字段值为‘0322002’的记录,将其sbirthday字段值改为19871112、sdepa字段值改为‘math’。

注意:

使用update语句时,千万别忘带where子句来限制所要修改的记录,否则可能会导致大量数据被破坏。

索引的创建与删除

为了加快数据查询的速度,MySQL允许用户为一个表的特定字段设置索引,一个索引就是该字段值的一个列表。

有了索引,MySQL就不必通过浏览表中的每一行来查找和指定查询条件相匹配的记录,而是通过索引来查找和指定查询条件相匹配的纪录。

对于一个数据量很大的表来说,由于索引比较小,使用索引后可以显著地减少数据查询的执行时间。

索引可在使用CREATETABLE语句创建表的同时创建,也可以使用CREATEINDEX语句向已存在的表中添加。

1.在创建表的同时创建索引

在创建表时,如student,在使用createtable语句创建表时,使用primarykey子句为该表指定了一个主键sno,那么MySQL会自动为该表的sno字段创建索引。

此外,在创建表时,还可以用INDEX子句或UNIQUE子句创建索引。

【例】要创建一个选课课程表course,将课程编号cno字段定义为主键,同时为课程名称cname字段创建一个名为can的索引,可使用下面的命令。

如果将子句indexcan(cname)改为unique(cname),则创建的是UNIQUE索引,该索引要求索引字段中的值必须是唯一的,也就是说,表中各条记录中该字段的值不能相同。

如果向表中插入一个与现有记录中该字段值相同的记录,则会失败。

2.向已存在的表添加索引

使用createindex语句可向已存在的表添加索引,该语句格式如下:

create[UNIQUE]INDEX索引名on表名称(字段名1[(长度)],…);

【例】要为表student的sname字段创建名为sna的索引。

对于类型为char和varchar的字段,建立索引时还可以指定索引长度值(对于类型为blob和text的字段,索引长度值是必须指定的)。

【例】要为表student的sname字段创建名为sna的索引,并指定索引长度值为10,可使用下面的命令。

这里指定索引长度值为10,是基于大多数名字通常在前10个字符是不一样的考虑,这样创建的索引文件会更小一些,既可节省磁盘空间,又可以加速insert等操作。

另,说明:

无论使用createindex还是使用createtable语句建立索引,都可以不指定索引的名字,这时MySQL会自动使用指定字段的字段名为索引命名。

3.删除索引

当不再需要索引时,可使用dropindex语句删除它。

格式:

dropindex索引名on表名称;

【例】要删除表student中索引名为sna的索引,可使用下面的命令。

用户的创建和删除

在首次安装MySQL时,MySQL会自动授予任何用户都可以从本地连接MySQL服务器,但是只有MySQL管理员root(初始化密码为空)可以完全访问系统中的所有数据库(默认仅有mysql和test这两个数据库),而任何其他用户仅能访问test数据库。

首次安装MySQL时,MySQL安装程序会在数据库mysql中设置5个MySQL授权表(如P260表11-5所示),由这5个授权表共同决定哪个用户可以连接服务器、从哪里连接以及连接后可以执行哪些操作。

要查看数据库mysql中表user前4个字段的内容,可使用下面的命令。

这里需留意一下命令中“mysql.user”的写法,其含义是数据库mysql中的表user。

当然,如果事先使用命令usemysql选择了当前使用的数据库,则可将该命令中的“mysql.user”简化为“user”。

在上图中,第1、2条记录表明,MySQL授予用户root可以从本地(10calhost)连接到数据库服务器,并且对服务器中的所有数据库都拥有完全控制的权限(从表user的第4个字段起的所有关于权限的字段值都是‘Y’);第3、4条记录表明,任何其他用户(对应表user中的字段user值为空,相当于匿名用户)也可以从本地(localhost)连接到数据库,但是对系统中所有数据库都没有访问权限(从表user的第4个字段起的所有关于权限的字段值都是‘N’)。

要查看数据库mysql中表db的前4个字段内容,可使用下面的命令。

命令的执行情况如下图所示:

可见,表db定义了任何用户都可以从任何主机访问数据库test(或以test开头的),并且对该数据库拥有完全的访问权限(从表db的第4个字段起的所有关于权限的字段值都是‘Y’)。

这里的字符“%”被用作通配符,字符“\”被用作转义符。

虽然在表db中定义了允许任何用户可以从任何主机访问数据库test,但由于在表user中限制任何用户只能从本地(localhost)来连接数据库服务器,因此在这两个表的共同作用下,MySQL默认设置是任何用户只能从本地完全访问数据库test。

此外,由于MySQL默认允许用户root(初始化时无密码)可以从本地连接数据库服务器,并且可以完全访问系统上的所有数据库,因此为安全起见,应尽快为MySQL管理员(root用户)设置密码。

在明白了上述道理之后,下面用一种直观的方法来为数据库服务器创建/删除新用户,以及更改用户密码。

1.创建新用户

要创建一个新用户guest,并为他设置密码,同时允许它从任何主机连接到数据库服务器,可按以下步骤进行设置。

①以MySQL管理员身份从本地连接到数据库服务器,可使用下面的命令实现。

②创建新用户guest,并为他设置密码,同时允许他从任何主机连接到数据库服务器,可使用下面的命令实现。

此处必须使用password()函数,该函数会为密码加密,这样在表user的字段password中保存的就是经过加密的密码。

此时密码是guest。

③重载MySQL授权表,可使用下面的命令实现。

上面3条命令的执行情况如下图所示。

设置完成后,要测试新建用户是否可以使用,可以在远程客户端使用下面的命令来连接该数据库服务器。

这里,用选项“-h”来指定所连接的数据库服务器的IP地址或域名。

具体测试情况如下图所示。

2.删除用户

删除用户应使用delete语句。

【例】要删除用户guest,可使用下面的命令:

注意,删除后不要忘记用flushprivileges命令重载MysQL授权表。

删除用户guest的执行情况如图所示。

3.更改用户密码

由于MysQL授权表实际上与MySQL常规表没有什么本质区别,因此也可以用UPDATE语句来修改其内容,包括修改用户密码。

【例】要将用户guest的密码改为“123456”,可使用下面的命令(需用root登录,执行flushprivileges语句)。

这两条命令的执行情况如下图所示:

此外,还有一种更简单的更改用户密码的方法。

例如,要将用户guest的密码更改为“guest”,可使用下面的命令:

这里,guest@‘%’的基本格式为“用户名@客户端的域名”。

字符%是通配符,使用通配符时可用单引号将它括起来,例如,tom@'%’。

这条命令的执行情况如下图所示。

需要说明的是,当使用SETPASSWORD语句来更改用户的密码时,不需要执行FLUSHPRIVILEGES语句来重载MySQL授权表。

用户权限的设置

MySQL授权表是用来控制用户连接数据库服务器和访问数据库的权限,授权表中有权限字段有以下两种形式。

(1)在表user、db和host中,所有权限字段都被声明为ENUM(‘N’,‘Y’),即每一个权限字段值都可以被设置为‘N’或‘Y’,并且缺省值为‘N’。

P264~P265表11.6中列出了表user、db和host中可设置权限的字段。

(2)在表tables_priv和columns_priv中,权限字段被声明为SET类型,即可以从所定义的权限集合中选择任意个权限。

P265表11-7列出了表tables_priv和columns_priv中权限字段及可设置的权限。

MySQL提供了两种修改授权表中的访问权限的方法,一种是使用INSERT、UPDATE和DELETE等DML语句来手工修改表中的信息;另一种是使用GRANT和REVOKE语句。

前者比较直观,但由于各授权表中字段数很多,很容易出错,通常不推荐这么做,而后者更好。

下面主要介绍使用GRANT和REVOKE语句的具体使用方法。

1.使用GRANT语句授权

GRANT语句的基本格式如下:

2.使用REVOKE语句撤权

REVOKE语句的基本格式如下:

MySQL的图形化配置

目前,架设动态Web站点比较流行的是采用Linux上的Apache+MySQL+PHP(简称LAMP)组合方案,即用Apach作Web服务器,MySQL充当后台管理数据库,用PHP开发Web程序。

采用这种组合方案来开发和架设Web站点,具有免版权费、系统效率高、灵活、可扩展、稳定和高度安全等优点,只是在站点的架设、升级与维护上有一定的难度。

MySQL标准发行版本没有提供图形界面管理工具,因此使用起来有些困难。

为了解决这个问题,TobiasRatschiller开发了一套用于管理MySQL数据库的开放源代码的工具——PhpMyAdmin(如图所示为phpMyAdmin的官方网站)。

在经过众多爱好者的共同修改与再开发后,目前使用phpMyAdmin已经可以很方便地完成大部分MySQL数据库管理员需要完成的工作,这些工作主要包括以下方面:

✧创建和删除数据库;

✧创建、复制、删除、修改表;

✧删除、编辑、添加字段;

✧执行任何SQL语句,包括批查询;

✧管理字段中的键值;

✧将文本文件输入到表;

✧备份和恢复表;

✧导入导出逗号分隔方式的数据。

安装phpMyAdmin

phpMyAdmin是用PHP编制的一种B/S(浏览器/服务器)结构的“软件”,与其说是软件,还不如说是一些放在服务器端的通过浏览器界面管理的页面程序文件,因此,安装phpMyAdmin实际上就是将它解压到一个允许执行PHP的目录下。

安装的具体步骤如下。

1)从

2)将tar文件解压缩到/root,可执行下面的命令。

3)该命令执行后,将在/root目录下生成一个子目录phpMvAdmin-2.6.4-pl1。

4)为了便于测试,将子目录phpMvAdmin-2.6.4-pl1移动到默认ApacheWeb站点的主目录/var/www/html/phpMyAdmin下,并改名为phpMyAdmin,可使用下面的命令。

配置phpMyAdmin

配置phpMyAdmin,实际上是通过修改配置文件config.inc.php实现的,该文件位于刚建立的目录/var/www/html/phpMyAdmin中。

配置文件config.inc.php中的选项很多,以下是可能需要修改的内容。

参考录像:

1)修改配置文件后,必须重新启动httpd服务和mysqld服务。

如果输入http:

//localhost/phpMyAdmin后,显示如下页面:

说明php-mysql的RPM安装包没有安装。

用第2张光盘安装。

如果输入http:

//localhost/phpMyAdmin后,显示如下页面:

说明没有发现PHP的扩展设置mbstring,需使用第4张光盘中的php-mbstring软件包安装,然后在/etc/php.ini文件中的“;extension=mysql.so”这一行下面加一行:

extension=mbstring.so

注意:

更改后重新启动httpd服务,重新启动mysqld服务后,再重新打开phpMyAdmin即可。

配置phpMyAdmin虚拟目录

为了安全、更方便地管理MySQL数据库,用户可采用Web站点的虚拟目录的方式来发布phpMyAdmin的页面程序文件,从而让用户通过别名来访问phpMyAdmin管理页面。

【例】在Intranet中,要把同时安装有Apache和MySQL服务的计算机(域名为)上的/var/phpMyadmin目录配置为虚拟目录,且虚拟

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1