第十八章 数据库服务器

一. 数据库服务器的基本概念

1. 数据库相关概念的定义

数据

数据是一种描述事物符号记录

数据库

数据库是经过计算机整理的、存储在一个或多个文件中的、有组织的、可共享的数据集合

数据库管理系统

数据库管理系统是位于用户和操作系统之间的用于管理数据库的应用软件

数据库系统

数据库系统是数据库、数据库管理系统、数据库管理系统运行时所需软硬件及相关人员的集合

数据库服务器

运行数据库管理系统可以实现网络分布式存储的主机称为数据库服务器

2. 数据库模型的分类

关系数据库

层次数据库

网状数据库

面向对象数据库

3. Linux下的数据库管理系统

企业级服务器

Oracle

Sybase

DB2

中小型服务器

PostgreSQL

MySQL

4. SQL简介

SQL(结构化查询语言)是一种综合、通用、功能极强且简洁易用的关系数据库语言,可以应用于多种数据库管理系统(OracleSQL ServerMysqlPostgresql)和多种开发工具(VBVCDEPHIPB)中

5. DBA(数据库管理员)的职责

服务器的启动、关闭、维护及优化

用户账号的管理

日志管理

数据库的备份和恢复

二. MySQL基础

1. MySQL简介

MySQL是一种精巧的、多用户和多线程的中小型SQL数据库系统,可以实现网络的分布式存储。

2. MySQL的特点

支多线程和多CPU

没有内存溢出漏洞

支持多种语言利用MySQLAPI进行开发

可以运行在不同平台上

提供多种数据类型

支持ODBCSSL

3. MySQL的安装方法

方法一:RPM包安装方法

//放入第二安装光盘,安装MYSQL所需的RPM

#rpm  -ivh  perl-CGI-2.81-88.i386.rpm

#rpm  -ivh  perl-DBI-1.32-5.i386.rpm

#rpm   -ivh  perl-DBD-MySQL-2.1021-3.i386.rpm

//安装mysqlrpm

#rpm  -ivh mysql-3.23.54a-11.i386.rpm

#rpm  -ivh mysql-server-3.23.54a-11.i386.rpm

#rpm  -ivh mysql-devel-3.23.54a-11.i386.rpm

方法二:编译安装方法

#tar  -xzvf  mysql-3.23.54a.tar.gz

#cd  mysql.3.23.54a

#./configure  --prefix=/usr/local/mysql

#make

#make  install

相关文件:

safe_mysqld

用于以安全方式启动mysqld守护进程的脚本

mysql

基于命令行的mysql客户端连接程序

mysql_install_db

用于初始化系统的数据库

mysqladmin

mysql的管理程序

myisamchk

用于检查、优化和修复mysql中的各个表

mysqlshow

用于显示数据库、表、列和索引等信息

mysqldump

将数据库的数据到一个文本文件中

mysqlimport

将文本文件导入到数据库中

4. 启动服务

方法一:

#service   mysql  start

方法二:

#/etc/init.d/mysqld   start

三. Mysql服务器管理

1. 认识系统数据库

mysql服务器默认情况下自建两个系统数据库,分别是:

mysql库:存放mysql服务器相关设置参数和用户权限分配等信息,当启动mysql服务器时,会自动读取该库中的信息

test库:供用户学习所用

2. 连接服务器的方法

客户机可以通过客户端连接工具,连接到服务器上从而进行相应的管理操作,具体操作方法如下:

#mysql  [ -h 主机名]  [-u  用户名]  [ -p 密码]  [数据库名]

实例:

#mysql 

表示使用当前登录系统的用户连接本机中mysql服务所建立的mysql数据库

#mysql  -h  www.abc.com  -u  admin   -p linuxadmin   student

表示使用admin用户连接www.abc.com 服务器中student

注:(1)当用mysql连接工具连接到服务器时,提示可能会出现以下情况:

mysql>

表示准备好接受新命令

mysql->

表示等待多行命令的下一行

mysql '>

表明一个一个以单引号“'”开台的字符串尚示以单引号“'”结束

mysql ">

表明一个一个以双引号<">台的字符串尚示以双引号<">结束

(2)退出mysql可以使用命令\q

3. 利用mysql客户工具管理mysql服务器的数据库

(1)建立数据库

方法:

#mysql

mysql>CREATE  DATABASE 数据库名;

实例:

#mysql

mysql>CREATE   DATABASE   emple;

(2)显示服务器中己建立的数据库名称

方法:

#mysql

mysql>show  databases ;

注:在shell直接运行mysqlshow也可以显示己建立数据库名称

(3)删除数据库

方法:

#mysql 

mysql>DROP   DATABASE  数据库名;

实例:

#mysql

mysql>DROP  DATABASE  student

(4)打开数据库

方法:

#mysql

mysql>use  库名;

实例:

#mysql

mysql>use    emple

4. 数据表的管理

1)建立表

方法:

#mysql

mysql>CREATE   TABLE  表名(字段1  类型,

mysql(>字段2    类型,

mysql(>字段3    类型

..........................

..........................

mysql(>字段n        类型)

实例:

#mysql 

mysql>CREATE  TABLE  users  (userid   char(6),

mysql(>name   char(20),

mysql(>password   char(10));

2) 删除表

方法:

#mysql

mysql>DROP  TABLE  表名;

实例:

#mysql 

mysql>DROP  TABLE   student;

3) 查看表中的数据

方法:

#mysql  

mysql>SELECT  字段 [,字段.....] FROM  表名 [WHERE  条件];

实例:

#mysql

mysql>SELECT  *  FROM  emple;

4) 查看表结构

方法:

#mysql

mysql>describe  表名;

实例:

#mysql

mysql>use  users;

mysql>describe   student;

5) 显示数据库中己建立的表名

#mysql

mysql>show  tables;

6) 向表中添加数据

方法:

#mysql

mysql>INSERT  INTO  表名(字段名[,字段名....])   VALUES(值[,值.........]);

实例:

#mysql

mysql>use   users;

mysql>INSERT  INTO  student    VALUES  (‘0001’,’u1’,’u1pass’);

7) 删除表中的数据

方法:

#mysql

mysql>delect  from  表名  [where   条件];

实例:

#mysql

mysql>use  users;

mysql>delect   from   student ;

8) 修改表中的数据

方法:

#mysql

mysql>update   表名  set  字段=值 where  条件;

实例:

#mysql

mysql>use   users;

mysql>update  student  set  password=’abcefg’  where  userid=’0001’;

5. 索引管理

1) 建立索引

方法:

#mysql

mysql>CREATE  INDEX  索引名   ON 表名(列名)

实例:

#mysql

mysql>use  users

mysql>CREATE   INDEX  in1  ON  student (username);

2) 显示索引信息

方法:

#mysql 

mysql>show  index  from 表名

实例:

#mysql

mysql>use   users;

mysql>show   index  from  student;

3) 删除索引

方法:

#mysql

mysql>DROP   INDEX 索引名  ON  表名;

实例:

#mysql

mysql>use  users

mysql>DROP  INDEX  in1  ON  student;

6. 用户管理

mysql数据库用户与LINUX系统用户是相互独立,它是用系统库mysqluesr表来存放用户信息的;当客户机试图连接服务器时必须提供相应用户和口令才允许连接,此时mysql服务器通过检索user表进行身份验证,下面介绍用户管理的相关操作:

1)建立用户

方法:

#mysql

mysql>INSERT INTO  user(host,user,password)  VALUES (‘主机名’,’用户名’,PASSWORD(‘密码’));

实例:

#mysql 

mysql>INSERT  INTO  user host,user,password) VALUES (‘%’,’m1’,PASSWORD(’m1admin’);

用此种方法建立用户可以连接服务器中,但不能对任何库进行相应的操作

2)删除用户

#mysql

mysql>delete   from  表名    [where  条件]

3)修改密码

#mysqladmin  -u 用户名  password  ‘密码’

7. 权限管理

客户机使用某个用户连接到服务器上进行相关操作时,服务器将验证客户机身份是否有权进行此操作,数据库权限主要有以下几种:

select  读取表的数据

insert  向表中插入数据

update  更新表中的数据

delete  删除表中的数据

index   创建或删除表的索引

alter   修改表的结构

create  创建新的数据库和表

drop  删除现存的数据库和表

grant  将自己拥有的某些权限授予其他用户

file   在数据库服务器上读取和写入文件

reload  重新装载授权表

shutdown  停止或关闭mysql服务

process   查看当前执行的查询

1) 添加用户权限

方法:

#mysql 

mysql>grant   权限 on 对象   to   用户名   [identified  by   ‘密码’]  [with grant option]

实例:

#mysql

mysql>grant   all  on  *.*   to   m1;

2) 回收用户权限

方法:

#mysql

mysql>revoke  权限   on   对象   from  用户名;

实例:

#mysql 

mysql>revoke   insert   on   db1.t1   from u1;

四. Mysql的日志管理和数据库备份、恢复

1. Mysql数据目录的结构

通过rpm包安装的mysql数据目录为/var/lib/mysql,在该目录中存放的是数据库的数据目录,每个数据目录中存放的文件主要包括:

*.frm     包含表结构描述信息

*.MYD  包含表的数据信息

*.MYI   包含数据文件中任何索引的索引树,无论该表有无索引,索引文件都存在

2. Mysql日志文件分类

1)错误日志

错误日志作为mysql服务器标准错误输出的重定向,包含了服务器写入标准错误输出设备的所有消息,同时还包含了mysql服务的启动和关闭事件,该类日志记录在/var/log/mysql.log文件中

2) 常规日志

常规日志用来记录有关mysql服务器运行的常规信息,包括用户的连接、查询以及其他各种事件;该日志文件存放在/var/lib/mysql目录中。

3) 更新日志

更新日志用来记录修改数据库的查询信息,包括insert、update、delete、replace等所有涉及数据库修改的SQL语句的查询记录;该类日志存放在/var/log/mysql目录中。

3. 配置日志文件的路径

#vi   /etc/my.cnf

[mysqld]

…………..

…………

……………

………………..

[safe_mysqld]

…………….

err-log=/var/log/mysqld.log    //指定错误文件的路径

………………….

log                        //启用常规日志功能

log-update                  //启用更新日志功能。

…………….

……………………

4. 查看日志

日志文件为一般的文本文件,所以使用任意一种中文本编辑软件或文本输出工具都可以查看日志的内容,例如:

#more   /var/log/mysqld.log

5. 数据库的备份

方法:

#mysqldump   [-u  用户名]   [-p 密码]  [选项]  数据库名>备份路径

实例:

#mysqldump   -u  root   -p admin    --opt    db1>/bak/db1.sql

6. 恢复数据库

方法:

#mysql  [-u   用户名]  [-p  密码] 库名<备份库存放的路径

实例:

#mysql  -u   root   -padmin   db1</bak/db1.sql

7. Mysql的图形管理工具

mysqlGUI

phpadmin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值