会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助。
简介
Apache HTTP Server作为优秀的Web服务器软件,提供了面向用户的前端应用功能。而在实际的企业网站平台中,为了提供更丰富、更强大的Web应用功能,往往还需要有后台数据库、网页编程语言等多种角色的支持。
本章将学习如何安装MySOL数据库,以及使用和维护MySOL数据库的基本操作。
本章重点
- 安装及使用MySOL数据库
- MySOL数据库的用户授权
一,MySQL服务基础
MySOL是一个真正的多线程、多用户的SOL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySOL AB公司进行开发、发布和支持,之后历经Sun 公司收购MySOL AB公司,Oracle公司收购Sun公司的过程,目前MySOL项目由Oracle公司负责运营和维护。
本节将介绍MySOL的编译安装过程、服务控制方法,以及如何使用客户端工具访问MySOL数据库。
MySOL 服务器默认通过TCP3306端口提供服务。通过编辑/etc/my.cnf配置文件中[mysql]配置段的“port=3306”行,可以更改监听端口。
需求描述
1.编译安装MySOL服务器,并添加为mysqld系统服务。
2.为MySOL数据库的root用户设置密码,删除用户名、密码为空的用户记录。
3.新建名为“bdqn”的库,授权用户rundb从本机访问,具有所有操作权限。
4.以rundb用户登录,在bdqn库中创建stuinfo表,并录入数据,如表3-2所示。
下面就跟着阿马来一起安装,使用并且为用户授权
创建一个管理mysql组
创建一个管理mysql的服务账户
二,安装mysql数据库
为了确保MySOL数据库功能的完整性、可定制性,本小节将采用源代码编译的方式安装MySOL数据库系统。MySOL5.X系列版本的使用最为广泛,该版本的稳定性.兼容性都不错,这里将以mysql-5.5.22.tar.gz为例,其官方站点为http://www.mysql.com/。
1.安装mysql的依赖和环境变量
1)注意这里先要切换CentOS-7.4-x86_64-DVD-1708.iso光盘进行安装
2)使用yum安装环境变量和依赖
3)安装完成
2.使用源码安装mysql
1)因为我们要使用Linux.iso进行源码安装,所以在安装之前需要先卸载之挂载的CentOS光盘
2)切换Linux.iso光盘
3)挂载光盘
4)将mysql-5.5.22.tar.gz解压到/usr/src下
5)切换到/usr/src/mysql-5.5.22/ 进行配置
在内容丰富、结构庞大的企业网站平台中,可能会用到多种字符集的网页,相应地数据库系统也应该支持不同的字符集编码。在配置过程中,可以将默认使用的字符集设置为utf-8.并添加其他字符集的支持。
上述配置命令中,各选项的含义如下。
- -DCMAKE_INSTALL_PREFX:指定将MySQL 数据库程序安装到某目录下,如目录/usr/local/mysql。
- -DSYSCONFDR:指定初始化参数文件目录。
- -DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf-8。
- -DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于utf-8字符集的通用规则。
- -DWITLEXTRA_CHARSETS:指定额外支持的其他字符集编码。
6)编译并且安装,这个过程是比较久的,看个人电脑性能,快的3~5分钟左右,慢的不定,具体看个人情况
三,安装后的其他调整
1.生成mysql主配置文件
CentOS7系统下默认支持MariaDB数据库,因此系统默认的/etc/my.cnf 配置文件中是MariaDB的配置文件。而在MySOL源码目录中的support-files文件夹下,提供了MySOL数据库默认的样本配置文件my-default.cnf 文件,在启动MySOL数据库服务之前,需要先将原有的my.cnf文件替换为MySQl提供的配置文件内容。
2.生成mysql服务控制文件
为mysql服务控制文件加入执行权限:
3.优化mysql命令
测试是否优化成功:输入mysql按两下tab得到一下结果即为成功:
4.初始化数据库
初始化完毕
为了能够正常使用MySOL数据库系统,应以运行用户mysql的身份执行初始化脚本mysql install_db,指定数据存放目录等。
5.添加为系统服务并且设置为开机自启
6.启动并设置为开机自启mysqld服务
四,访问mysql数据库
熟悉安装及访问MySOL数据库以后,接下来将学习使用MySOL数据库的基本操作,这也是在服务器运维工作中不可或缺的知识。本节中的所有数据库语句均在“mysql>操作环境中执行。
1.首先设置登录mysql 用户为root的密码为pwd@123
2.登录mysql数据库
如图以上情况就已经成功登录mysql数据库
3,show databases; 查看数据库
SHOW DATABASES 语句:用于查看当前MySOL服务器中包含的库。经初始化后的MySOL服务器,默认建立了四个库:test,mysql、information_schema 和 performance_schema(其中mysql库是mysql正常运行所需的库,其中包含了用户认证相关的表)
4.show tables; 查看表
SHOW TABLES语句:用于查看当前所在的库中包含的表。在操作之前,需要先使用USE语句切换到所使用的库。例如,执行以下操作可以显示mysql库中包含的所有表。
MySOL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“.frm”、".myd”和“.myi”。
5. desc 查看表的结构
DESCRIBE 语句:用于显示表的结构,即组成表的各字段(列)的信息。需要指定“库名.表名”
作为参数;若只指定表名参数,则需先通过USE 语句切换到目标库。例如,执行以下操作可以查看mysql库中的user 表的结构,与直接执行‘DESCRIBE mysql.user;”语句的效果相同。
6.创建及删除库和表
当需要为网站平台提供数据库服务时,如何操作来创建新的库呢?根据一份二维数据表格,如何在现有的库中创建表?对于废弃的数据表和库,又该如何进行删除呢?本小节主要解决这三个问题。
1)创建新的数据库
CREATE DATABASE语句:用于创建一个新的库,需指定数据库名称作为参数。例如,执行以下操作可以创建一个名为auth的库。
2)创建新的表
CREATETABLE语句:用于在当前库中创建新的表,需指定数据表名称作为参数,并定义该表格所使用的各字段。基本格式如下所示。
CREATE TABLE表名(字段1名称类型,字段2名称类型,…,PRIMARYKEY(主键名))
例如,我们要在auth库中创建一个sutdent表,指定字段,id,name,sex,age这四个字段,为id字段加上主键,如图:
3)删除表
DROPTABLE语句:用于删除库中的表,需要指定库名.表名”作为参数;若只指定表名参数,则需先通过执行“USE”语句切换到目标库。例如,执行以下操作可以删除auth库中的student表。
4)删除数据库
DROP DATABASE 语句:用于删除指定的库,需要指定库名作为参数。例如,执行以下操作可以删除名为auth的库。
五,管理表中的数据记录
参考上面中的步骤重新创建auth库和student表,下面将以student表为基础,学习向表中插入、查询、修改及删除数据记录的操作。
1.插入数据 insert into
INSERT INTO语句:用于向表中插入新的数据记录。语句格式如下所示:
INSERT INTO表名(字段1,字段2…)VALUES(字段1的值,字段2的值,…)
如图所示:向student表中分别插入“张三”,“李四”,“王五”
2.查询表中数据
SELECT 语句:用于从指定的表中查找符合条件的数据记录。MySQL数据库支持标准的SOL查询语句,语句格式如下所示。
SELECT字段名1,字段名2…FROM表名 WHERE 条件表达式
如图所示:我们要查询auth中student的数据
若只想查看id与名字,便可以像图下这样写:
灵活变通,根据自己需要写出相应的sql语句
3.修改表数据
UPDATE语句:用于修改、更新表中的数据记录。语句格式如下所示。
UPDATE 表名 SET字段名1=字段值1 字段名2 = 字段值2 WHERE 条件表达式
如图所示:修改auth库中的student中的张三的性别为女,年龄为20
4.删除数据记录
DELETE 语句:用于删除表中指定的数据记录。语句格式如下所示。
DELETE FROM 表名 WHERE 条件表达式
如图所示:删除赵七
六,数据库用户授权
MySOL 数据库的root用户账号拥有对所有库、表的全部权限,频繁使用root 账号会给数据库服务器带来一定的安全风险。实际工作中,通常会建立一些低权限的用户,只负责一部分库,表的管理和维护操作,甚至可以对查询、修改、删除记录等各种操作做进一步的细化限制,从而将数据库的风险降至最低。
1.授予权限
GRANT 语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT 语句将会创建新的用户,否则,GRANT 语句用于修改用户信息。语句格式如下所示。
GRANT 权限列表 oN 库名.表名 To 用户名来源地址 [IDENTIFIEDBY ’密码!]
使用GRANT语句时,需要注意的事项如下。
权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update,delete“。
使用“all”表示所有权限,可授权执行任何操作。
库名,表名:用于指定授权操作的库和表的名称,其中可以使用通配符“*”。例如,使用
“auth.*”表示授权操作的对象为auth库中的所有表。
用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.bdqn.com"“192.168.1.%”等。
DENTFEDBY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略
“DENTIFIED BY"部分,则用户的密码将为空。
执行以下操作可以添加一个名为xiaoqi”的数据库用户,并允许其从本机访问,对auth库中的sutdent具有查询权限,验证密码为“pwd@123.使用GRANT语句授权的用户记录,会保存到mysql库的user、db.host、tables_priv等相关表中,无须刷新即可生效。
验证:
1).切换Centos光盘,使用yum安装mysql客户端
2).使用xiaoqi登录
3).查看是否拥有查询权限
4).查看是否拥有删除权限
2.查看授权
当我们忘记授权指定用户指定主机时,可以查看指定用户指定主机拥有得数据库权限
SHOW GRANTS 语句:专门用来查看数据库用户的授权信息,通过FOR子句可指定查看的用户对象(必须与授权时使用的对象名称一致)。语句格式如下所示。
SHOW GRANTS FOR 用户名 来源地址
1)登录mysql数据库查看xiaoqi在本机的权限
3,撤销权限
REVOKE 语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然可以连接到MySOL服务器,但将被禁止执行对应的数据库操作。语句格式如下所示。
REVOKE 权限列表 oN 数据库名.表名 FROM 用户名来源地址
如图所示:执行以下操作可以撤销用户xiaoqi从本机访问数据库auth的所有权限。
查看'xiaoqi'@'localhost'的权限
七,实验案例
需求描述
- 编译安装MySOL服务器,并添加为mysqld系统服务。
参考上述,进行配置
测试:
2.为MySOL数据库的root用户设置密码,删除用户名、密码为空的用户记录。
3.新建名为“bdqn”的库,授权用户rundb从本机访问,具有所有操作权限。
1)新建bdqn库
2)授权rundb用户从本机访问具有所有操作权限
4.以rundb用户登录,在bdqn库中创建stuinfo表,并录入数据,如表3-2所示。
1)使用rundb登录
2)在bdqn库中创建stuinfo表
3)插入数据
4)查看数据
掌握了上述各种MySOL管理命令的使用,已经可以满足大多数网络管理员(非专职数据库管理员)的工作需要。若希望了解更多关于MySOL语句的知识,可以参阅MySOL的在线参考手册。
故事很短,道理很长,学无止境,不忘初心,砥砺前行