[摘要]:MySQL是一个遵循GPL的开源软件、在Linux平台底下它是LAMP(LAMP 在英语中是“灯”的意思,但是在 IT 行业当然不是那么简单的一个意思了。这个术语在德国十分流行。代表了 Linux 平台上的 Apache 网站服务器;MySQL 数据库以及 Perl 、Python 或者 PHP 编程语言的结合)组合重要组成部分。同时它提供的C API可以结合Glade/GTK+,可以代替Windows平台的VB+ACCESS/MS SQL SERVER组合。本篇文章介绍数据库MySQL及其各种工具的简单用法.
一、为什么使用 MySQL:MySQL 是一种高性能的数据库,因为如下原因。它可以和市场下任何同类的产品竞争。
l 速度。 MySQL 本身并不复杂。 http://www.mysql.com/information/crash-me.php 上可以找到 MySQL 和其他数据库产品进行竞争的数据的相关信息
l 可升级性。 MySQL 能够同时处理无限数量的拥护和 5 亿个纪录
l 简单性。 MySQL 的核心是一个小而快速的数据库,面向那些了解数据库工作的人员,是他们能够有效的工作和编写高级功能。
l 价值: MySQL 是遵循 GPL 协议的自由软件,你可以下载并且使用它。
l 可移植性。因为 MySQL 是开放源代码的自由软件,可以运行于所有的平台,如果不能运行于你的平台,你可以修改、编译源代码。
二、 MySQL 缺少什么
MySQL 所保护的都是基于权限的,不是基于市场的。 MySQL 能做什么和不能做什么是我们在使用之前需要清楚的。
l 图形界面: MySQL 开始提供类似 MS SQL Server 的界面,尚处于测试中
l 事务处理: MySQL 不支持事务处理,但是 2000 年 5 月 9 日的发行说明中, MySQL 宣称版本 3.23.15 “试验性支持” Sleepy Software 的 Berkely DB 数据库。版本 3.23.25 完全实现了这一个功能。
l 存储过程: MySQL 没有存储过程机制。 MySQL 开发团体的“ to do ”列表中有一种存储过程机制,它将包含在版本 4 中。
l 触发器:触发器是一种程序,通常存在于一种嵌入式脚本语言如 Zend 或者 Python 中。有消息说这种触发器会应用于版本 4 中,使用 Zend 脚本引擎。
l 参照完整性:将来支持
l 记录等级锁定: MySQL 不支持记录等级锁定。将来会改善,这都是开放源代码的力量。
l 子查询: MySQL 不支持子查询。但是通过它提供的C语言接口可以很容易的弥补。
l 视图: MySQL 不支持视图。但是它在 MySQL 开发团体的 to do 列表中。
很清楚地看到MySQL对于转向Linux的平台应用的将来的意义。
三、 MySQL 数据库系统的安装
这里只讨论在 Linux 系统下的 MySQL 数据库系统的安装,可以通过 RPM 包安装和 tar 包安装,这里只讨论 RPM 方式安装 Binary 。
通过 RPM 包安装,你需要下面三个文件:
1、 MySQL-3.23.25-1.i386.rpm 这是一个服务器部分。它包含接受请求和返回结果的实际数据库服务器
2、 MySQL-client-3.23.25-1.i386.rpm 这是客户端部分。
3、 MySQL-devel-3.23.25-1.i386.rpm. 从这个文件中,你需要一个 C API 文件。
安装过程如下:首先安装服务器部分,然后安装客户端部分,最后需要安装 C 程序开发需要的文件。
1、 安装服务器:
键入如下命令: #rpm –ivh MySQL-3.23.25-1.i386.rpm
2、 安装客户端
键入如下命令: #rpm –ivh MySQL-client-3.23.25-1.i386.rpm
4、 安装 C 开发文件
键入如下命令: #rpm –ivh MySQL-devel-3.23.25-1.i386.rpm
5、 卸载 MySQL: 首先需要关闭服务器
#mysqladmin shutdown
#rpm –e –vv MySQL-3.23.25-1
#rpm –e –vv MySQL-client-3.23.25-1
6、 安装账号管理 MySQL 服务器 : 从 RPM 安装。 Mysql 用户账号会自动创建。这是一个用来运行 MySQL 的服务的用户。
更改 mysqladmin 口令:为了增强安全性,需要为 mysql 的根用户改变口令,这可以通过下面的两个命令来完成
%mysqladmin –u root –p password ‘new-password’
或者
%mysqladmin –u root –h servername –p password ‘new-password’
四、启动和停止 MySQL 服务器 Daemon
使用 RPM 安装, MySQL 服务器 dameon 自动为你启动和停止, RedHat 的系统在 /etc/init.d/mysqld 的 MySQL 服务器脚本。
如果由于某些原因,你需要启动 MySQL dameon ,是用如下命令
%safe_mysqld –user=mysql &
要关闭 MySQL 服务器 dameon, 发送入下命令:
%mysqladmin shutdown
五、应用于 MySQL 的工具和程序
除了 MySQL 服务器 (mysqld) 。 MySQL 程序组包含大量的程序,来管理数据库和数据库服务器。当通过 RPM 安装 MySQL 时,这些程序被安装。 Isamchk 和 myisamchk 是验证和重修数据库表和文件的工具。 Mysqlaccess 用于授权、更改和撤销用户许可权限。 Mysqladmin 是一种高级管理工具,如创建数据库和关闭数据库等。 Mysqldump 用于在紧急关头倒出数据和备份表,它在 SQL insert 语句中输出数据,所使用的方法能够将输出文件反馈到 MySQL 服务器,并且行也将被装载。 Mysqlimport 是一种整体装载工具,而 mysqlshow 显示关于数据库对象的信息(如标)。
1. isamchk: 查看和修理被毁坏的表
如果由于某些未知的原因,是数据库表被毁坏,这个工具能够对它进行修补。容纳基本数据的数据文件叫做索引顺序存取法( Index Sequential Access Method,ISAM )文件。
MySQL 在 3.23 和更高版本中将 MyISAM 文件格式作为了默认选项。需要使用 myisamchk 工具,而不是 isamchk 。 ISAM 表结构被 MyISAM 结构替换。将来 ISAM 将不被支持。下面重点介绍一下 MyISAM 文件结构:
ISAM 旧文件结构:数据库中的每一个表实际上是三个文件的组合: *.ISD 文件包含数据, *.ISM 文件包含关于数据结构的信息,比如密钥和索引, *.frm 文件包含表的结构。
查看 /var/lib/mysql/test_db/ 目录中发现三个文件
tb1_books_1.frm 88bytes
tb1_books_1.MYI 1024 bytes
tb1_books_1.MYD 8604 bytes
*.frm 和旧的文件结构相同, *.MYI 文件和 *.ISM 文件一致,并且 *.MYD 文件符合旧的 *.ISD 文件。
2. myisamchk
这是 MyISAM 存储格式的 isamchk 的更新版本工具,它的基本用法如下所示:
myisamchk [OPTIONS] tables..MYI
利用如下命令可以得到你的系统中可以使用的全部选项列表
3. mysqlaccess 这个工具最值得讨论的就是 -howto 命令行,当你执行一下命令的时候,你就得到一个如何使用这个工具的例子:
%mysqlaccess –howto
mysqlaccess 的使用方法相当简单:
mysqlaccess [host [user [db]]] OPTIONS. 。如果没有提供选项,那么就必须提供 user 和 db 。如果没有指定主机,则用本地服务器。
4. mysqladmin
这个命令的常规用法如下:
mysqladmin [OPTION] command, 选项是标准的 Unix 命令方式: -v 用于详细说明, -t=XX 指连接到服务器的超时时间。使用命令
%mysqladmin -?| more 可以看到所有的列表。 Command 部分用于规则的条件。现免得列表中是常用的 command
命令
|
说明
---|---
Create db_name
|
创建一个叫做 db_name 的数据库
Drop db_name
|
删除数据库名称
Flush-logs
|
清除所有日志
Flush-privileges 或者 reload
|
重载授权表,或者执行相同操作的命令
Ping
|
查看 mysqld 是否启动
Shutdown
|
关闭数据库
Status
|
查看服务器的状态
5. mysqldump
这是一个用于备份、移植或者重载数据库的工具。命令用法有以下两种:
%mysqldump [OPTIONS] database [tables]
或者
%mysqldump [OPTIONS] 。在使用第二种方法时,你必须提供 -databases 或者 —all-databases 选项
6. mysqlimport
这是 MySQL 的大量输入工具,它类似于 MS SQL Server 的 bcp 工具。它是 LOAD DATA 语句的命令行接口,用法如下:
%mysqlimport [OPTIONS] db_name file_name
7. mysqlshow
mysqlshow 给出了关于数据库、表或者列的信息,它是 show 语句的命令行接口
用法:
%mysqlshow [OPTIONS] [database_name [table_name [column]]]
8. myisampack
myisampack 可以把一个 MyISAM 表压缩到一个相对小的空间。他有点象 gzip, 只是它运行于表中。它运行于 .MYD 文件,并且把它压缩到一个很小的尺寸。运行 myisampack 之后,你可以查看表,但是不能更新表。
版权所有,如需转载,请注明出处。