20160829-mysqlday1
1.mysql的定义
1)数据库管理系统
管理数据,数据库当中的最小单位表
文本方式保存:读文件从头开始,速度非常慢
数据库:索引,(图片,视频)
-----
1
2

5000000
-----
读帖子---400000

2)c/s----》b/s
客户端浏览器
麻烦方便
安全
稳定

3)开放源码
GNU--》GPL

4)关系型
表和表之间支持一定的关系

5)sql
结构化查询语言

6)多os
linux、windows

7)mysqlab-->sun-->oracle--->mysql
--mariadb分支

===================================
2.存储引擎
数据库的读写速度的快慢
数据库读写数据的方式---存储引擎
mysql---插件式的
两大知名存储引擎---》表 
默认事务锁机制适用场景
MYISAM mysql5.5之前非事务表锁线下分析
INNODBmysql5.5开始事务行锁线上金钱类
-----------------------------
# 事务 ACID
----------------
表1--余额表
1000010000-5000

表2--已购物表
+1手机
----------------------------------
原子性,
begin;
10000-5000
+1
commit;
===============================================
# 锁

写锁和读锁
锁精度:表锁和行锁
写不能写
写不能读
读能读
读不能写
-----------------------
myisam表
-----
superman
batman

-----
batman 发帖----写锁---表
superman发帖---不能
superman读写---能
---------------------
batman 读贴----读锁---表
superman读贴---能
supermna写贴---不能
=================================
innodb表
batman 发帖----写锁---行
superman发帖---写锁---行
superman读写---能
==============================================================
3.安装适用mysql(mariadb)
OS
mysql5.1rhel6.5
mysql5.5mariadb5.5rhel7.2
mysql5.6mariadb10.0
mysql5.7mariadb10.1
mariadb10.2

软件名mariadb-server 5.5
servicemariadb
daemonmysqld
配置文件 /etc/my.cnf
/etc/my.cnf.d/*.cnf
数据文件/var/lib/mysql
日志文件/var/log/mariadb/mariadb.log(错误日志,启动日志)
端口号3306

==============================================================
# 安装必要的软件包
[root@mastera0 ~]# yum install -y vim net-tools wget

[root@mastera0 ~]# yum list|grep mariadb
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
mariadb-libs.x86_64                     1:5.5.44-2.el7             @anaconda/7.2
mariadb.x86_64                          1:5.5.44-2.el7             rhel_dvd     
mariadb-bench.x86_64                    1:5.5.44-2.el7             rhel_dvd     
mariadb-devel.i686                      1:5.5.44-2.el7             rhel_dvd     
mariadb-devel.x86_64                    1:5.5.44-2.el7             rhel_dvd     
mariadb-libs.i686                       1:5.5.44-2.el7             rhel_dvd     
mariadb-server.x86_64                   1:5.5.44-2.el7             rhel_dvd     
mariadb-test.x86_64                     1:5.5.44-2.el7             rhel_dvd     
[root@mastera0 ~]# yum install -y mariadb-server
# 查看软件架构
[root@mastera0 ~]# rpm -ql mariadb-server
# 启动服务
[root@mastera0 ~]# systemctl start mariadb
# 查看守护进程
[root@mastera0 ~]# ps -ef|grep mysqld
mysql     2496     1  0 13:56 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql     2653  2496  0 13:56 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root      2694  2347  0 13:56 pts/0    00:00:00 grep --color=auto mysqld
# 查看监听端口号
[root@mastera0 ~]# netstat -luntp|grep mysqld
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2653/mysqld

===========================================
4.客户端

软件名称mariadb 5.5
命令mysql 登陆连接mysql服务器
mysqladmin修改数据库服务器用户密码
mysqldump备份
mysqlbinlog二进制日志的查看

-------------------------------------------
命令的使用
mysql
1.服务启动后,mariadb5.5直接登陆,不需要密码
2.退出 \q exit ctrl+d

mysqladmin -uroot password 'uplooking'
-u 用户名 空格可有可无 -u root;-uroot
password 新密码一定要有空格

mysql -uroot -puplooking
-u 用户名 空格可有可无 -u root;-uroot
-p 密码 不可以有空格 -puplooking

mysqladmin -uroot -puplooking password 'uplooking123'
-u 用户名可有可无
-p 当前密码不能有
password 新密码有

mysql -uroot -puplooking123
----------------------------------------------
SQL语句
* sql命令不区分大小,数据库,表,数据是区分大小写的
* sql语句以分号提交

# 分类
DDL数据库定义语言create\drop\alter

create database [dbname];
drop database [dbname];
create table [tbname] (col1 type,col2 type,col3....);
drop table [tbname];

DML数据库操作语言insert into\delete from\update
insert into [tbname] set col1=value,col2=value,col3=value;
insert into [tbname] values (1,'booboo'),(2,'batman'),(3,'superman');
insert into [tbname] (name,id) values ();
delete from [tbname] where id=1 and name='booboo';
update [tbname] set col='superman' where id=2;

DCL数据库控制语言grant revoke
认证 + 授权
grant all on *.* to booboo@'172.25.0.11' identified by 'uplooking';
all 权限 
*.* 库.表
flush privileges; 刷新授权表
revoke [权限] on [库].[表] from booboo@'172.25.0.11';

DQL数据库查询语言show databases;
use mysql;
show tables;
desc mysql.user;
select * from db1.t1;

-------------------------------------------------
课堂作业:
1.查看mysql库中user表中的host,user,password列的值;
2.删除mysql库中的user表中,user列为空或者password列为空的行;

MariaDB [mysql]> select host,user,password from mysql.user;
+----------------------+------+-------------------------------------------+
| host                 | user | password                                  |
+----------------------+------+-------------------------------------------+
| localhost            | root | *6FF883623B8639D08083FF411D20E6856EB7D2BF |
| mastera0.example.com | root |                                           |
| 127.0.0.1            | root |                                           |
| ::1                  | root |                                           |
| localhost            |      |                                           |
| mastera0.example.com |      |                                           |
+----------------------+------+-------------------------------------------+
6 rows in set (0.00 sec)

MariaDB [mysql]> delete from mysql.user where user=' ' or password=' ';
Query OK, 5 rows affected (0.00 sec)

MariaDB [mysql]> select host,user,password from mysql.user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *6FF883623B8639D08083FF411D20E6856EB7D2BF |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)
=====================================================================================
实验2:添加授权用户
实验要求:添加授权用户测试客户机优先使用的哪个密码
user1@'172.25.X.%' uplooking
user1@'172.25.X.12' uplooking123

172.25.X.11 mastera

masterb去登陆连接mastera的mariadb-server:

1.install mariadb
2.friewalld
3.mysql -u -p -h

======================================================
如何破解mariadb5.5的root密码
1.停止服务 systemctl stop mariadb
2.跳过授权表启动服务 mysqld_safe --skip-grant-tables &  
查看服务名称的方法:(ps -ef|grep mysqld;rpm -ql mariadb)
3.mysql-->update mysql.user set password=password('uplooking')   where user='root'; 
4.停止跳过授权表启动服务 kill -9
5.启动服务 systemctl start mariadb
===============================

晚自习作业:
1.熟悉sql语句,bookshop
2.查看授权表
3.添加授权用户
4.破解root密码

-------------------------------------------------------

转载于:https://www.cnblogs.com/lihuaichen/p/8270201.html

Mysql学习第一课-mysql的定义及sql语句相关推荐

  1. Mysql学习进度(2013.03.12)—sql语句学习一

    在我的订餐系统里,和常规一样表里会有一个主键,这是不可重复的.所以,我们在插入一段新数据之前,都会判断目前表里最大的一个主键的值,然后为其加上1,在进行插入: 获取主键最大值的sql语句是: SELE ...

  2. python学习第一课

    python学习第一课 课前回顾 1.请求类型: 2.传参类型: 3.postman断言.参数化.多接口参数依赖 接口文档 这个接口是做什么的?URL请求类型参数--> 如何传递参数params ...

  3. mysql5.7.17.zip教程,Mysql学习win10下mysql 5.7.17 zip压缩包版安装教程

    搜索热词 <MysqL学习win10下MysqL 5.7.17 zip压缩包版安装教程>要点: 本文介绍了MysqL学习win10下MysqL 5.7.17 zip压缩包版安装教程,希望对 ...

  4. JavaScript学习 第一课(一)

    JavaScript学习 第一课(一) 学习内容 一.什么是JavaScript 二.如何引用JavaScript 三.JavaScript使用时注意的事项 四.JavaScript中的保留字与关键字 ...

  5. gb2818的学习第一课

    关于gb2818的学习第一课 一.说明 为什么写这一系列的文章,自己在做gb28181是的一下痛苦的经历,在经过了网上的大量资料终于有所进步,所以想回馈一下大神们. 二.安装 参考文章:Linux编译 ...

  6. python学习第一课——环境配置+比着葫芦画个瓢

    python学习第一课 1. python概览 2. python的运行 3. python的变量.类型与存储 4. 对*.py文件的运行与存储 5. 终端切换路径及目录显示 6. 踩着巨人的肩膀创新 ...

  7. 无人驾驶学习---第一课

    无人驾驶学习-第一课 (本课程内容来自优达学城无人驾驶纳米学位) 车道线识别 内容: 识别出一幅图像中的车道线并将其标注出来 过程: 1.准备一张包含有车道线的图片: 2.读取图片并转换为灰度图: 3 ...

  8. CS61C学习 —— 第一课

    目标 CS61C学习 -- 第一课 计算机处理器和内存是如何工作的? 处理器和内存是如何影响软件设计和性能的? 介绍计算机系统领域相关知识(CS 152, CS 164, CS 161, CS 149 ...

  9. MySQL学习笔记 | 04 - MySQL数据库基本操作(增加、修改、删除、查看)

    MySQL学习笔记 | 01-为什么要使用数据库 MySQL学习笔记 | 02 - MySQL在Windows下的安装.配置.服务启动/停止.用户登录.查看版本号 MySQL学习笔记 | 03 - M ...

  10. 高性能MySQL学习笔记(1) —— MySQL架构

    MySQL架构 1.MySQL逻辑架构: 这里分为三层: 1.连接层:连接与线程处理,这一层并不是MySQL独有,一般的基于C/S架构的都有类似组件,比如连接处理.授权认证.安全等. 2.SQL处理层 ...

最新文章

  1. base64是哪个jar包的_如何通过一个类名找到它属于哪个jar包?
  2. 让机器像人一样听音乐,Facebook开源Demucs项目
  3. kalinux实现自适用全屏、与物理主机共享文件方法
  4. 基于地图的工作流设计器,及基于地图的业务流程办理界面(二)
  5. 异常信息: java.lang.ClassNotFoundException: org.aspec
  6. 1.15 总结-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  7. 浅谈ASP.NET Forms验证
  8. java生日验证_Java验证身份证号码是否有效
  9. JQuery AJAX处理页面返回的XML
  10. EXCEL制作柱形图逆序的意义
  11. 物联网平台类型有哪些
  12. 学计算机物理去戴维斯还是伦斯勒理工学院好,美国大学本科专业排名:应用物理...
  13. 农商银行招聘计算机人员考什么,农商银行招聘考试考什么内容
  14. STM32MP157C-DK2 开机测试
  15. 短信发送接口(短信宝)
  16. 根据年份判断属相php,自动算出生肖属相的c程序编写程序,输入一个年份,判断该年属相.(提示switch-case......
  17. Flutter组件--重叠布局/相对布局(Stack,Positioned组件)
  18. 江西省一级计算机考试试题,江西省历年计算机一级考试试题
  19. RationalDMIS 7.1 程序示例
  20. 27习题幼儿园买玩具

热门文章

  1. 回收站引发ORACLE查询表空间使用缓慢
  2. 一封程序员的苦逼辞职信
  3. 如何解决MFC读取文件在EditControl中显示是乱码的问题
  4. 只不过窗口没有停留 一闪而过
  5. ps提示“脚本错误-50出现一般Photoshop错误的解决方法
  6. NTFS For Mac的兼容性问题
  7. EasyRecovery如何恢复游戏——英雄联盟
  8. linux 安装Paramiko模块安装和使用
  9. 关于5G你所需要知道的一切
  10. Java 6 变量 代码块