Linux虚拟机(CentOS5)学习笔记(九)之Mysql基础(完结)

十二. MySQL基础

一、关于数据库

1、什么是数据库

如果一个项目是动态(内容会变化的,网页的后缀.jsp、.php、shtml等等)内容的话,则数据库是必不可少的一个环节。(静态:Html、html)

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的安装与初始化

操作之前先确保计算机时间准确。

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 -ga|grep关键词
#rpm -e 关键词 [-nodeps]
#rpm -ivh 完整名称
#rpm -Uvh 完整名称  更新
#rpm -qf 文件路径【查询指定文件属于哪个包】

案例:使用二进制包安装lynx(一款纯命令行的浏览器)

例如查看百度:#lynx --dump www.baidu.com

c.yum等傻瓜式安装

优点:安装简单,快捷
缺点:完全丧失了自定义性

常用的yum指令:

#yum list         列出当前已经装的和可以装的软件(全部)
#yum search        搜索指定的关键词的包
#yum [-y] install 包名   安装指定的包(-y表示允许不再确认)
#yum [-y] update [包名]   更新指定的包,不指定包则更新全部软件
#yum [-y] remove 包名

注意:如果不更改软件来源的情况下,是需要联网才能使用yum的。

案例:使用yum指令卸载火狐浏览器

#yum remove firefox

案例:使用yum指令安装火狐浏览器
#yum install firefox

2、安装MySQL(重点)

注:此处安装以yum安装为例

2.1、MysQL安装
#yum install mysql-server

安装完成

2.2、MysQL初始化
#service mysqld start

查看端口号(默认端口号):

#mysql secure installation

Enter current password for root(enter for none):请输入当前 root用户的密码,如果没有按回车,注意此root 并非linux的root用户。

Set root password?是否设置root密码?
需要设置的密码:********

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 mysgld start/stop/restart

进入mysql的方式:
#mysql -u用户名 -p

退出MysQL到linux命令行:
mxsql>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,要求有字段如下:
ld字段,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、增加记录
语法1:INSERT INTO 表名称 VALUES(值1,值2,.…);

语法2:INSERT INTO 表名称(列1,列2.…)VALUES(值1,值2,.…);

案例:往数据表xg表中新增一个记录username为zhangsan,password为123456(加密结果E10ADC3949BA59ABBE56E057F20F883E)

Sql语句:
insert into xg(username,password)values(‘zhangsan’,‘E10ADC3949BA59ABBE56EO57F20F883E’)

要求前面的列名与值要一一对应。

4.2、更新记录
语法:UPDATE 表名称 SET 列名称1=新值1,列名称2=新值2...WHERE 列名称=某值;

案例:使用更新语句更新id大于等于2的记录,将其密码改为:
25F9E794323B453885F5181F1B624D0B

SQL语句:
Update xg set password =‘25F9E794323B453885F5181F1B624DOB’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 ×g;

4.4、删除记录
DELETE FROM 表名称 WHERE 列名称=值;

案例:删除id为2的记录
Delete from xg where id=2;

5、备份与还原(重点)

5.1、备份(导出)

全量备份(数据+结构):

全量备份(数据+结构):#mysqldump -uroot -p123456(密码) -A > 备份文件路径
指定库备份(数据+结构):#mysqldume -uroot -p123456 库名 > 备份文件路径
多个库备份(数据+结构):#mysqldump -uroot -p123456 --databases db1 db2 > 备份文件路径

xxxx.sql xxx.tar.gz

案例:备份整个库
#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 库名 < 备份文件路径
3.还原单个数据库的多个表(需指定数据库)

(1)mysql>use库名
mysql>source 备份文件路径
(2)mysql -uroot -p123456 库名 < 备份文件路径

4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)
(1)mysql命令行:mysql>source备份文件路径(2)系统命令行:mysql -uroot -p123456 < 备份文件路径

案例:人为删除xg表(模拟数据表丢失),然后通过最后一次备份还原数据表。

先删除数据表

还原操作:

案例2:需要还原sqL文件到test库库(mobile.sql31万条数据)

设置Mysql连接字符集:
Mysql> set names utf8;

【三码一致,服务器端+传输过程中+客户端】

四、扩展

1、mysql的远程管理工具

分为两大类:B/s架构、C/s架构。
B/S:B是指浏览器,s是指服务器。例如:百度搜索应用就属于BS架构软件。
C/s:C是指客户端,s是指服务器。例如:QQ、电脑端徽值等应用程序都是CS架构。

在Bs中,mysql有个典型的管理工具:PMA(phpMyAdmin)

cs中比较典型的软件:navicat、mysql workbrach

要解决的问题:允许mysql远程登录

a.先进入数据库选择mysql数据库;

b.执行sgql语句:select host,user from user;

c.将其中的一个记录的host值改为“%”,表示可以允许任何地方登录

d.刷新权限表或者重启mysql

刷新权限:mysql> flush privileges;

e.navicat登录成功


所有笔记到这里都结束了~
学习笔记一:基本命令
学习笔记二:基本命令
学习笔记三:Vim
学习笔记四:自有服务
学习笔记五:自有服务
学习笔记六:权限管理
学习笔记七:网络基础
学习笔记八:Shell基础
学习笔记九:Mysql基础
知识来源:
Linux学习网站
CentOS6.5


全部笔记下载:
Linux学习笔记.md

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值