一 、数据库概念

Mysql能干嘛呢?

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

它就是一款软件,安装在任何一台计算机或者服务器上的时候,只要我告诉它创建一个文件,新增一个数据,删除一个数据它就能帮我去做想要的操作

那我们暂且能不能理解为mysql就是用来帮我们操作文件的!

MySQL:用于管理文件的一个软件(两个程序)

-服务端软件

-socket服务端

-本地文件操作

-解析指令

-客户端软件

-socket客户端

-发送指令

-解析指令

 

客户端可以有很多个,python,java,php,c++都可以编程一个客户端,用代码指定ip port链接上服务端即可操作

那么问题来了,不同的客户端练我一个服务端,语言不相同无法实现交流。所以应该有共同的语言才行>>>解析指令(sql语句)

 

技能:

-安装 服务端和客户端

-链接

-学习sql语句规则,指定服务端做任何操作

 

mysql只是一种能够帮助我们管理数据的软件,还有其他类似的软件也是通过发送指令来帮你管理数据库

其他类似软件:

关系型数据库:sqlite,db2,oracle,access,sql server,MySQl

非关系型数据库:mongodb,redis

关系型:彼此之间有约束或者有联系

 

总结:mysql就是帮助我们远程在文件上做相应操作的

 

二 、MySQL的安装

mysqld服务端

mysql客户端

 

软件目录结构初识

 

终端最好以管理员身份运行

 

切换到mysql目录下启动mysqld服务端(阻塞,监听地址,固定的ip和端口)

cd D:\mysql56
D:

新开cmd窗口启动mysql客户端

 

链接mysql:

mysql -h 127.0.0.1 -P 3306 -uroot -p 密码不输,直接回车

如果是在本机登陆mysqld服务端,可以简写为mysql -uroot -p

客户端服务端请求流程分析

show databases诠释文件夹和库概念

 

环节变量配置

 

系统服务制作(制作之前一定要先把mysql关闭)

# 查看mysqld进程
tasklist |findstr mysqld
# 杀死mysqld进程
taskkill /F /PID 'PID号'

将mysqld这款软件做成系统服务软件

mysqld --install

查看计算机当前运行程序数

services.msc

 

三 、 修改密码与破解管理员密码

 

mysqladmin -uroot -p password "123"

# 第一次修改完密码以后,之后还修改密码需要
mysqladmin -uroot -p123 password "123456"


# 为了后续调试方便,这里把密码设为空值
mysqladmin -uroot -p123 password "新密码"

 

四 、 破解密码

 

* 先关闭mysqld服务端

 

* 以跳过授权表的方式在命令行中启动mysqld服务端

mysqld --skip-grant-tables

* 客户端直接以无密码的方式登陆root用户修改密码

mysql -uroot -p

* 修改管理员密码


update mysql.user set password=password("123") where user="root" and host="localhost";
flush privileges; # 刷新权限

* 命令行杀死mysqld服务


tasklist |findstr mysqld
taskkill \F \PID 'PID'


* 服务管理正常启动mysqld

 

五 、 统一字符编码

 

mysql命令:"\s" 查看编码

修改配置文件,执行时会自动查找my.ini文件

mysql不输用户名和密码,会默认以游客模式登陆,不好!


# my.ini配置文件特点
[mysql]
#终端输入mysql打头的命令就会加载下面的配置
username='root' # 演示确实加载改文件,但是username叫user才正确
password = '123'
[mysqld]

 

六 、 通用配置

 

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

mac系统

finder中切换到默认安装路径下/usr/local/mysql

下面就是一大堆文件目录

配置文件是my.cnf,没有int等windows上的配置文件

 

 

七 、 基本 sql 语句

 

对数据的增删改查

sql书写错误,只要没加分号,可以加\c使前面的sql语句失效

 针对文件夹的(库)


# 增
create database db1 charset utf8;
# 改
alter database db1 charset gbk;
# 查
show databases;
show create database db1;
# 删
drop database db1;

针对文件的(表)

文件首先需要在文件夹下面,所以在操作文件之前,应该先确定操作的是哪个文件夹下面的文件


# 切换文件夹
user db1;
select database(); # 查看当前所在的库
# 增
create table t1(id int,name char); # 创建出来的可能是多个文件,解耦管理
# 改
alter table t1 modify name char(16);
# 查
show tables;
show create table t1; # 查看表的详细信息
describe t1; == desc t1; # 查看表结构
# 删
drop table t1;

 针对(记录)


# 增
insert into db1.t1 values (1,'egon'),(2,'kevin'),(3,'jason'); # into可加可不加,db1可以不指定,默认就是在当前库下
# 改
update db1.t1 set name='DSB' where id > 1;
update db1.t1 set name='DSB' where id = 2 or id = 3;
# 查
select id,name from db1.t1; # db1可不指定,默认当前库下
select * from t1;
# 删
delete from db1.t1 where id >3;
delete from db1.t1 where name='egon' # 这里注意如果少了一个引号,后面无论敲什么都没有用了需要将引号补全

 

八 、 存储引擎

 

文件格式有很多种,对应的软件也有很多种txt,pdf等

针对不同类型的文件,需要对应有不同的软件帮助我们去操作


# 查看所有的存储引擎
show engines;

# 查看不同存储引擎存储表结构文件特点
create table t1(id int)engine=innodb;
create table t2(id int)engine=myisam;
create table t3(id int)engine=blackhole;
create table t4(id int)engine=memory;

insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 values(1);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄