linux数据库服务器
作者:田逸(sery@163.com) <网管员世界>2006年4期

数据库是一项十分重要的网络服务,它被广泛地应用在internet网站、搜索引擎、电子商务等诸多领域。在开源社区,mysql以其开放源代码、性能高效而稳定、多用户多线程等特性获得“世界最受欢迎的开放源代码数据库”,本文将以mysql为例,介绍linux数据库的安装、配置和使用。

mysql的安装
redhat 大部分发行版的安装光盘都附带mysql安装程序,redhat as 4 内置的mysql版本是mysql 4.1.10.可以在安装linux操作系统时选择安装mysql数据库,也可以在操作系统运行中安装mysql数据库。经验表明,在安装操作系统的时候选择安装mysql数据库要比操作系统运行中(以rpm包形式的话)要容易的多,因为以rpm包安装很可能出现包依赖或软件冲突的问题,而解决这些附加的依赖包,真的不是一件令人愉快的事情。用命令# rpm ╟qa | grep mysql 查看系统是否安装mysql,如果输出没有内容,表明mysql没有被安装。接下来,我们以两种方式来安装mysql数据库服务器。
1、 rpm包方式安装。至少需要以下几个rpm包文件:
a. mysql-server-4.1.7-4.rhel4.1.rpm (mysql 数据库主程序).
b. mysql-devel-4.1.7-4.rhel4.1.rpm (mysql 使用的库和头文件).
c. mysql-4.1.7-4.rhel.rpm (mysql客户端程序)。
把上面这几个文件复制到硬盘的目录(比如/root),以root帐号执行命令 # rpm ╟ivh mysql-devel-4.1.7-4.rhel4.1.rpm ; rpm ╟ivh mysql-server-4.1.7-4.rhel4.1.rpm ; rpm ╟ivh mysql-4.1.7-4.rhel4.1.rpm ,即可完成安装,如果不幸出现安装失败的事件,多半是由于包依赖引起的,请按错误提示信息安装所需的依赖包,然后再执行mysql数据库的安装。
2、源码包的安装方式。依照版本的不同,二进制源码包的安装方式也是差异极大的。先从mysql的官方网站下载所需的稳定二进制源码包,运行命令 # tar zxvf mysql-standard-5.0.18-linux-i686-glibc23.tar.gz ,通过阅读文件readme及install获得安装mysql的方法。在这里,笔者使用的是mysql-standard-5.0.18-linux-i686-glibc23.tar.gz,其他版本的安装方法请参照其解压后的readme和install文件的说明。按照install文档,执行以下步骤来完成安装:
(1)把解压后的目录及文件移动到目录/usr/local .#mv mysql-standard-5.0.18-linux-i686-glibc23 /usr/local .
(2)创建连接文件# ln ╟s /usr/local/ mysql-standard-5.0.18-linux-i686-glibc23 /usr/local/mysql
(3)切换目录 # cd /usr/local/mysql 。
(4)创建用户 # useradd mysql.
(5)执行脚本 # scripts/mysql_install_db --user=mysql 初始化数据库。
(6)更改目录属组和权限 # chown -r root . ; chown -r mysql data ; chgrp -r mysql .

mysql数据库服务器的启动及关闭
1、 以rpm包安装的mysql数据库服务器的启动:执行命令 # service mysqld start 。如果需要mysql数据库服务随系统开机运行,执行命令 # chkc ╟add mysqld 就把mysqld添加到相应的运行级别里。执行命令 # service mysqld stop 关闭数据库服务。为确认mysqld是否运行,执行命令 # ps ╟aux | grep mysqld 查看一下。
2、 以二进制源码包安装的mysql数据库的启动:执行命令 # /usr/local/mysql/bin/mysql_safe ╟user=mysql & .为了让mysql服务开机运行,通过编辑文件 /etc/rc.local ,把行/usr/local/mysql/bin/mysql_safe ╟user=mysql&追加进来。关闭mysqld则以杀进程的方式来完成。

mysql的配置
安装完mysql数据库服务后,仍然需要对某些配置做适当的修改才能满足实际的需求。首当其冲的是修改mysql管理员帐号root(注意:与系统帐号root是两码事),执行命令 # mysqladmin ╟u root password d%te6*h 设定密码为” d%te6*h”。另外一个可以操作的地方是mysql的配置文件my.cnf,其内容如下:
[root@sery etc]# cat -n my.cnf
1 [mysqld]
2 datadir=/var/lib/mysql
3 socket=/var/lib/mysql/mysql.sock
4 # default to using old password format for compatibility with mysql 3.x
5 # clients (those using the mysqlclient10 compatibility package).
6 old_passwords=1
7
8 [mysql.server]
9 user=mysql
10 basedir=/var/lib
11
12 [mysqld_safe]
13 err-log=/var/log/mysqld.log
14 pid-file=/var/run/mysqld/mysqld.pid

配置文件给出3种启动mysql服务的方法,根据自己的实际需求修改配置文件my.cnf,比如修改数据目录 datadir 的值。以二进制源码安装的mysql数据库,其运行需要的配置由运行脚本 mysqld_safe指定,如须更改则需要修改这个脚本文件。

管理mysql
大致有三种远程管理mysql数据库的方法:登录系统进行管理、使用客户端工具管理、基于浏览器方式(phpmyadmin)。登录系统管理是指以securecrt这样的工具,用系统帐号通过ssh协议连接mysql数据库所在的服务器,然后以系统用户执行命令 # mysql ╟u root ╟p 来连接数据库,进行相关的操作。第三方开发了许多基于windows的mysql客户端工具,这些工具大多提供图形方式的管理形式,操作起来非常直观和方便。基于浏览器管理是最方便的了,因为它不需要安装客户端,操作也很直观,用的人也是很多的。当然,作为linux系统管理员,是应该掌握用mysql命令行来管理mysql数据库。接下来,笔者为大家介绍mysql和phpmyadmin。
1、mysql:以用户mysql登录系统,执行命令 # /usr/local/mysql/bin/mysql ╟u root ╟p 回车,输入正确的密码,回车后出现下面的输出,表明mysql客户端已经与mysql数据库正常连接,在提示符 mysql > 输入相关的sql语句进行各种操作。
welcome to the mysql monitor. commands end with ; or g.
your mysql c id is 3 to server versi 5.0.18-standard

type 'help;' or 'h' for help. type 'c' to clear the buffer.

mysql>

2、phpmyadmin:从网站http://prdownloads.sourceforge.net下载软件phpadmin-2.6.4的二进制源码包 phpmyadmin-2.6.4-pl4.tar.gz,执行命令# tar zxvf phpmyadmin-2.6.4-pl4.tar.gz解压后,把目录及文件移动到apache服务器的根文档所在的目录#mv phpmyadmin-2.6.4-pl4 /var/www/html ,接着修改phpmyadmin的配置文件config.inc.php, 把行“$cfg[‘servers’][$i][‘password’]=’’’’ 改成“$cfg[‘servers’][$i][‘password’]=’’ d%te6*h’’.保存文件,再另一计算机的浏览器的地址栏输入 http://<mysql数据库服务器的ip地址>/phpmyadmin/index.php,即可对mysql数据库进行管理操作。注意:apache服务器应设置成支持php脚本,否则无法工作。

mysql数据库的基本操作
1、 数据库的操作。(1)创建数据库:mysql创建数据库的sql 语法为:create database < 数据库名称>,例如要创建数据库dangan,输入命令 mysql > create database dangan;(注意是以分号结束的),执行完毕后会在 /usr/local/mysql/data或/var/lib/mysql 生成目录 dangan。用命令 mysql > show databases; 查看已经创建好的数据库。(2)使用数据库。用命令 mysql > use <数据库名称> ; 来使用已经创建的库。(3)删除已创建的库:mysql > drop database <数据库名称>; 操作完成后,在/usr/local/mysql/data或/var/lib/mysql里与删除数据库同名的目录被删除。
mysql > create database dangan; //数据库名区分大小写,命令不区分,//“create database” 与 “create //database” 等同
mysql > use dangan; //使用数据库dangan
database changed //回显

mysql > drop database dangan; //删除数据库dangan

2、 表的操作。从文件系统看,表是某个数据库目录所属的文件,在一个数据库里创建一个表,那么就会在数据库目录生成几个与表名相同而后缀不同的文件。(1)创建表:创建表的语法为 create table <表名>(字段1,字段2…..),表创建完成后,输入 describe <表名> 查看刚创建的表的结构。(2)修改表:主要的一些操作有添加、删除或者修改表的字段,创建或撤消索引等,其语法格式为 alter table <表名> 更改动作1 [更改动作2….],更改动作包括add,drop,change,alter及modify等关键字。
3、 记录的操作。记录是表中存储的数据,通过sql的数据操纵语言(ddl)进行插入、删除和修改表中的记录。(1)插入记录:基本格式为insert into <表名> (字段1,字段2…) values(字段1的值,字段2的值….)。(2)删除记录:基本语法为delete from <表名> where <条件表达式>。(3)修改记录:基本语句为update <表名> set 字段名1=字段值1 [,字段名2=字段值2…] where 条件表达式。
4、 创建和删除用户。mysql数据库的用户记录存储在表mysql.user中,创建一个用户就是向mysql.user表添加一条记录,删除用户即是从该表删除一条记录。
5、 设置用户权限。为安全起见,对数据库对象的访问必须授权进行。在mysql中,常使用grant语句授予用户访问权限。grant的语句格式为 grant 权限表 [(字段表)] on 数据库名.表名。

数据库的备份和恢复
笔者认为,给数据库备份应该是系统管理员的一项基本职责。有两种备份mysql数据库的方法(第三方备份软件除外):直接复制和使用mysql备份工具mysqldump。
1、 直接复制。对于版本号高于3.23的mysql数据库,备份时直接复制数据库目录及其下面的文件。恢复时只须把备份的数据复制到原来的目录,随后启动mysql数据库,备份数据就自动恢复了。值得注意的是,在复制数据的过程中,可能会产生目录或文件权限变更的情况,因此在恢复操作前应先核实一下复制过来的目录和文件的权限及属主(属主应该是mysql而不是root等)。
2、 mysqldamp.是专门用来备份mysql数据库的工具,执行命令 # ./mysqldump ╟opt dangan ╟u root ╟p > /backup/dangan.sql 把前文创建的数据库备份到目录/backup。执行命令# ./mysql ╟u root ╟p < /data/dangan.sql 就很容易的把备份的数据库恢复了。也可以单独对数据库的表做单独的备份及恢复操作。

2006-2-28