一、关于数据库
1、什么是数据库
如果一个项目是动态(内容会变化的, 页后缀.jsp、.php、.shtml等)内容的话,则数据库是必不可少的一个环节。
2、MySQL简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,2008年被Sun公司收购,目前属于 Oracle 旗下产品。MySQL 是最流行的数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。其和php是黄金搭档(LAMP/LNMP)。
3、常见的其他数据库软件
目前市场上还有:Oracle(重量级的数据库)、MS SQL Server(微软)、Access(微软)、PostgreSQL、DB2、Mariadb(MySQL分支,完全兼容MySQL)。
二、MySQL的安装与初始化
操作之前先确保计算机时间准确。
1、Linux下的软件安装方式(初步)
a. 源码包(建议)
优点
开源,如果有足够的能力,可以修改源代码
编译安装,更加适合自己的系统,稳定高效
缺点
安装步骤较多,容易出错
编译过程时间较长
案例:使用源码编译安装方式安装ncurses(一种常用的终端库)
扩展:解包
常用语法:
#tar -zxvf *.tar.gz (大多数)
#tar -jxvf *.tar.bz2
选项含义:
-z或–gzip或–ungzip:通过gzip指令处理文件;
-x或–extract或–get:从文件中还原文件;
-v:显示操作过程;
-f或–file:指定一个文件;
-j:支持bzip2解压文件;
①先将软件包传递到服务器上“/usr/local/src”
②解压需要安装的源码包
# tar -zxvf ncurses-6.1.tar.gz
③切换到源码文件夹,然后执行后续操作
配置(config/configure/bootstrap) → 编译(make/bootstrapd) → 安装(make install/bootstrapd install)
配置操作主要是指定软件的安装目录、需要的依赖在什么地方、指定不需要可选依赖、配置文件的路径、通用数据存储位置等等。
指定安装的路径:–prefix=路径
需要依赖的路径:–with-PACKAGE名=[包所在的路径]
不需要依赖:–without-PACHAGE名
# ./configure –prefix=/usr/local/ncurses
# make
# make install
成功之后查看目录(可选):
b. 二进制包(rpm)
优点: 包管理系统简单,只需要几个命令就可以实现包的安装,升级,查询和卸载
缺点: 经过编译,不再可以看到源代码
回顾rpm相关指令:
#rpm -qa|grep 关键词
#rpm -e 关键词 [–nodeps]
#rpm -ivh 完整名称
#rpm -Uvh 完整名称
#rpm -qf 文件路径 【查询指定文件属于哪个包】
案例:使用二进制包安装lynx(一款纯命令行的浏览器)
在光盘中就有这个包
例如查看百度:#lynx –dump www.baidu.com
c. yum等傻瓜式安装
优点: 安装简单,快捷
缺点: 完全丧失了自定义性
常用的yum指令:
#yum list [installed] 列出当前已经装的和可以装的软件(全部)
#yum search 名 搜索指定的关键词的包
#yum [-y] install 包名 安装指定的包(-y表示允许不再确认)
#yum [-y] update [包名] 更新指定的包,不指定包则更新全部软件
#yum [-y] remove 包名 卸载指定的包
案例:使用yum指令卸载火狐浏览器
#yum remove firefox
案例:使用yum指令安装火狐浏览器
#yum install firefox
2、安装MySQL(重点)
注:此处安装以yum安装为例
2.1、MySQL安装
#yum install mysql-server
完成的:
2.2、MySQL初始化
#service mysqld start
查看端口 (默认端口 3306):
# mysql_secure_installation
Enter current password for root (enter for none):请输入当前root用户的密码,如果没有按回车,注意此root并非linux的root用户。
Set root password否设置root密码/strong>
需要设置的密码:qhabOfhlluB9
Remove anonymous users否移除匿名用户,选择移除(Y)
Disallow root login remotely否不允许root远程登录(默认不允许)
Remove test database and access to it否移除测试数据库(建议先不移除)
Reload privilege tables now否重新加载权限表(当我们更改了mysql用户相关的信息之后建议去重载权限)
2.3、MySQL的启动控制
语法:service mysqld start/stop/restart
进入mysql的方式:
#mysql -u用户名 -p
退出MySQL到linux命令行:
mysql > exit
2.4、默认目录/文件位置(了解)
数据库存储目录:/var/lib/mysql
配置文件:/etc/my.cnf
三、MySQL的基本操作(难点)
1、名词介绍
以Excel文件举例:
数据库:可以看作是整个excel文件。
数据表:可以看作是一个excel文件中的工作表。
行(记录):可以看作是一个工作表中的一行
列(字段):可以看作是一个工作表总的一列
2、库操作(重点)
以下命令在MySQL终端命令行中执行(大小写均可):
SHOW DATABASES; 显示当前MySQL中全部的数据库
CREATE DATABASE 库名; 创建数据库
DROP DATABASE 库名; 删除数据库
USE 库名; 切换数据库
Show databases效果
创建数据库:创建yunwei数据库
删除数据库:删除yunwei数据库
切换数据库:切换到test数据库
3、表操作
SHOW TABLES; 显示当前数据库中所有的表名(必须先use数据库)
CREATE TABLE 表名称 在当前数据库下创建数据表
(
列名称1 数据类型 [NOT NULL AUTO_INCREMENT],
列名称2 数据类型,
列名称3 数据类型,
….,
PRIMARY KEY(主键字段名)
);
常见的数据类型:int(整型)、char(定长字符)、varchar(不定长字符)。
主键一般就是序 所在的那一列(主键不能重复)。
DESC 表名; 描述一个数据表(查看表结构)
DROP TABLE [IF EXISTS] 表名; 删除一个数据表
案例:使用上述的语法
查看所有的数据表
创建数据表(去test库中创建)
要求:表名xg,要求有字段如下:
Id字段,11位整型,不为空,自增,主键
Username字段,varchar类型,20长度
Password字段,char类型,32长度
SQL(standard query language)语句:
Create table xg(
Id int(11) not null auto_increment,
Username varchar(20),
Password char(32),
Primary key(id)
);
查看表结构:
删除数据表:
4、记录/字段操作(重点)
4.1、增加记录
案例:往数据表xg表中新增一个记录username为zhangsan,password为123456(加密结果E10ADC3949BA59ABBE56E057F20F883E)
Sql语句:
insert into xg (username,password) values (‘zhangsan’,’E10ADC3949BA59ABBE56E057F20F883E’)
要求前面的列名与值要一一对应。
4.2、更新记录
语法:UPDATE 表名称 SET 列名称1 = 新值1,列名称2 = 新值2… WHERE 列名称 = 某值;
案例:使用更新语句更新id大于等于2的记录,将其密码改为:25F9E794323B453885F5181F1B624D0B
SQL语句:
Update xg set password = ‘25F9E794323B453885F5181F1B624D0B’ where id >= 2;
以后在执行影响行数的sql操作的时候一定需要注意条件是否写错或者漏写。
4.3、查询记录
SELECT 列名称1,列名称2… FROM 表名称 WHERE 条件;
SELECT * FROM 表名称 WHERE 条件;
案例:查询刚才新增的记录
只查询用户名和密码,并且是id=2的:
Select username,password from xg where id = 2;
查询全部:
Select * from xg;
4.4、删除记录
DELETE FROM 表名称 WHERE 列名称 = 值;
案例:删除id为2的记录
Delete from xg where id = 2;
5、备份与还原(重点)
5.1、备份(导出)
全量备份(数据+结构):#mysqldump -uroot -p123456 -A > 备份文件路径
指定库备份(数据+结构):# mysqldump -uroot -p123456 库名 > 备份文件路径
多个库备份(数据+结构):# mysqldump -uroot -p123456 –databases db1 db2 > 备份文件路径
案例:备份整个库
# mysqldump -uroot -pqhabOfhlluB9 -A > /root/sql_201804061609.sql
案例:每1分钟自动备份1次test数据库
计划任务编写:
等待几分钟观察目录情况:
5.2、还原(导入)
还原部分分(1)mysql命令行source方法 和 (2)系统命令行方法
1.还原全部数据库:
(1) mysql命令行:mysql> source 备份文件路径
(2) 系统命令行: #mysql -uroot -p123456 备份文件路径
2.还原单个数据库(需指定数据库)
(1) mysql> use 库名
mysql> source 备份文件路径
(2) #mysql -uroot -p123456 库名 备份文件路径
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!