Linux知识点笔记: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					    列出当前已经装的和可以装的软件(全部)
#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
在这里插入图片描述
查看端口号(默认端口号):
在这里插入图片描述
#mysql_secure_installation
在这里插入图片描述
在这里插入图片描述

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字段,cahr类型,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’,’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 备份文件路径			注: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 < 备份文件路径

案例1:人为删除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.执行sql语句:select host,user from user;
在这里插入图片描述
c.将其中的一个记录的host值改为“%”,表示可以允许任何地方登录
在这里插入图片描述
d.刷新权限表或者重启mysql
刷新权限:mysql>flush privileges;
在这里插入图片描述
e.navicat登录成功
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lhb-journey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值