MYSQL数据库配置

在这里插入图片描述原子性:要么都成功,要么都失败
一致性:加起来总是13000
持久性:只要变化就要提交
隔离性:两个进程操作同一个进程需要隔离开

########数据库:########
GPL通用公共许可证 General Public License
GNU=GNU is Not Unix(unix收费)minix=linux
oracle数据库 慢查询 读写锁 避免数据不统一
oracle mysql pgsql db2 SQLserver 关系型数据库 mongodb key-value 中间档
redis memacache 内存型数据库 例如淘宝主页 基本不变 用户访问速度也快 非关系型数据库
学习目标:
安装Mariadb数据库
配置和管理数据库
配置数据库用户和访问权限
备份和恢复数据库

##安装数据库服务##
1.配置静态ip,更改名字
在这里插入图片描述
2.yum源还是老师的7.0版本
在这里插入图片描述
yum search mariadb
yum install -y mariadb-server 服务端
在这里插入图片描述
systemctl start mariadb
systemctl status mariadb
在这里插入图片描述
cd /var/lib/mysql
ls ##查看数据库目录
ll ##查看权限
cd
systemctl enable mariadb
在这里插入图片描述
数据库其实就是该目录的子目录

在这里插入图片描述
在这里插入图片描述
不要使用字符区分数据库 就是大小写

mysql   ###直接登陆进入数据库
查看数据库有哪些库-->SHOW DATABASES;-->规范用大写
quit退出数据库

在这里插入图片描述

netstat -antulpe | grep mysql   查看数据库接口

0.0.0.0:3306端口,表示开启所有用户的3306端口都可以访问,为了数据库的安全,接口应该只会在服务内部开启 ,需要把对外的接口关闭。
数据库主配置文件vim /etc/my.cnf
在这里插入图片描述
:把对外的3306端口关闭
【mysqld】
skip-networking=1 只对内部开启
在这里插入图片描述
重启服务
netstat -antulpe | grep mysql 就看不见端口了
在这里插入图片描述
数据库开启前配置:

mysql_secure_installation #安全初始化

set root password?y   是否重置密码,直接回车就是默认选y

在这里插入图片描述
设置数据库初始化密码,移除匿名用户,远程禁止root登陆,
删除测试库并访问他 现在重新加载权限访问表

在这里插入图片描述
在这里插入图片描述
再次直接进出会显示错误
第一种是密码明文登陆
第二种是输入密码(不显示密码)登陆
在这里插入图片描述
没有test数据库了 只有mysql库记录用户信息
USE mysql (none)相当于切换目录到mysql数据库下
plugin插件
在这里插入图片描述
########mariadb######

yum install -y mariadb-server  
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
vim /etc/my.cnf
【mysqld】
skip-networking=1
mysql_secure_installation #安全初始化

数据库基本管理

数据库中的命令都是以;结尾ie

(1)mysql -uroot -predhat   ##数据库登陆
     数据库的查看:SHOW DATABASES;

mysql -uroot -predhat -e "SHOW DATABASES;" 表示直接命令查看数据库

(2)表查看:USE mysql;  ##进入数据库,mysql库记录用户信息,有那些用户
                    SHOW TABLES;     查看数据库中的表格
(3)表内容查看 :SELECT * FROM user; ##user就是SHOW TABLES里面的一个用户

(1)mysql -uroot -predhat ##数据库登陆
显示数据库:SHOW DATABASES;
在这里插入图片描述
mysql -uroot -predhat -e “SHOW DATABASES;” 表示直接命令查看数据库
在这里插入图片描述
(2)表查看:USE mysql; ##进入数据库,mysql库记录用户信息,有那些用户
SHOW TABLES; 查看数据库中的表格
在这里插入图片描述
在这里插入图片描述
(3)表内容查看 :SELECT * FROM user; ##user就是SHOW TABLES里面的一个用户
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
##查询######

查看表结构:DESC user;
针对字段搜索:SELECT Host,User,Select_priv FROM user;##查询Host,User,Select_priv信息
增加条件:SELECT Host,User,Select_priv FROM user WHERE Host='localhost';

查看表结构:DESC user;
在这里插入图片描述
针对字段搜索:SELECT Host,User,Select_priv FROM user;##在user表中查询Host,User,Select_priv信息
在这里插入图片描述
增加条件:SELECT Host,User,Select_priv FROM user WHERE Host=‘localhost’;
在这里插入图片描述

新建数据库

	CREATE DATABASE westos;  建立库
	SHOW TABLES;  
	CREATE TABLE linux(    ##新建linux表格
	  -> username varchar(10) not null,    (逗号表示命令没有完,分号表示结束)(建立username字段,字符串长度不能超过
	  -> password varchar(30) not null   ##建立password字段,字符串长度不能超过30
 	  -> );
	DESC linux;      ##查看linux表格结构
	INSERT INTO linux values('wsp','123')  添加用户信息, 添加用户信息,在linux表格中插入hello和123,分别属于username和password字段。
	SELECT * FROM linux;    ##查看表格内容
	SELECT username,passwd FROM linux;

CREATE DATABASE westos;  建立库

在这里插入图片描述
SHOW TABLES; 建立表
CREATE TABLE linux( ##新建linux表格
-> username varchar(10) not null, (逗号表示命令没有完,分号表示结束)
-> password varchar(30) not null
-> );
DESC linux; 查看表格的结构
在这里插入图片描述
INSERT INTO linux values(‘wsp’,‘123’)
SELECT * FROM linux;
SELECT username,passwd FROM linux;
在这里插入图片描述
在这里插入图片描述

更改

ALTER TABLE linux ADD class varchar(10);  添加字段
DESC linux;
ALTER TABLE linux ADD age varchar(4) AFTER password;    ##在linux表格中添加age字段,age字段不超过4,插入在password字段后
DESC linux;
ALTER TABLE linux DROP age;  ##移除age字段
ALTER TABLE linux RENAME user;      ##重命名表

SELECT * FROM user;
UPDATE user SET class='linux' WHERE username='wsp' AND password='123';  ##更新值,更新username='wsp' AND password='123对应的class的值为linux
SELECT * FROM user;
插入一组值
INSERT INTO user VALUES ('wsp1','456','python');
SELECT * FROM user;

ALTER TABLE linux ADD class varchar(10);
添加字段,默认在最后一行
DESC linux;
在这里插入图片描述
ALTER TABLE linux ADD age varchar(4) AFTER password;
##添加字段在password后
DESC linux;
在这里插入图片描述
ALTER TABLE linux DROP age; 移除age字段
在这里插入图片描述
ALTER TABLE linux RENAME user; ##重命名表
SELECT * FROM user;
在这里插入图片描述

插入一组值
INSERT INTO user VALUES ('wsp1','456','python');
SELECT * FROM user;

在这里插入图片描述

UPDATE user SET class='linux' WHERE username='wsp' AND password='123';  ##更新值
SELECT * FROM user;

在这里插入图片描述 更改password密码字符串长度为20,默认密码可以为空,第二个password表示密文
在这里插入图片描述
密码不可以为空
在这里插入图片描述
######删除##

DELETE FROM user WHERE username='wsp';  ##删除username=wsp所在的行
SELECT * FROM user;
SHOW TABLES;
DROP TABLE user;   ##删除user表格
SHOW TABLES;
DROP DATABASE westos; ##删除westos数据库
SHOW DATABASES;
大写S 两个大写的Z保存退出

DELETE FROM user WHERE username=‘wsp’;
##删除username=wsp所在的行
SELECT * FROM user;
在这里插入图片描述

SHOW TABLES;
DROP TABLE user;   ##删除user表格
SHOW TABLES;

在这里插入图片描述

DROP DATABASE westos; ##删除westos数据库
SHOW DATABASES;
大写S 两个大写的Z保存退出

在这里插入图片描述
##用户授权#####

CREATE USER westos@localhost  identified by 'wsp';  ##创建用户,westos@localhost为本地用户,@%为远程用户,在mysql数据库中的user表中可以查到用户信息
GRANT SELECT ON userdata.* TO westos@localhost;  用户授权grant,(westos@localhost用户可以再userdata数据库中执行查看权限)
FLUSH PRIVILEGES;  ##重载授权表
show garnts for westos@localhost ;查看用户权限

方法2
GRANT SELECT ON userdata.* TO westos@localhost IDENTIFIED BY 'wsp';##创建用户密码为wsp,权限为SELECT查看权限

REVOKE SELECT ON userdata.* FROM westos@localhost ##权限撤销revoke,回收查看权限

CREATE USER westos@localhost identified by ‘wsp’;
##创建用户,westos@localhost为本地用户,通过密码wsp可以登陆数据库。。@%为远程用户,在mysql数据库中的user表中可以查到用户信息
在这里插入图片描述
在这里插入图片描述
可以在另外一个shell用westos身份登陆数据库
在这里插入图片描述

GRANT SELECT ON userdata.* TO westos@localhost;  用户授权grant,(westos@localhost用户可以再userdata数据库中执行查看权限)
FLUSH PRIVILEGES;  ##重载授权表
show garnts for westos@localhost ;查看用户权限

在这里插入图片描述在这里插入图片描述
当前已经有SELECT查看权限
测试:
在这里插入图片描述
第一次无法看见数据库,第二次加权限之后可以看见数据库userdata
在这里插入图片描述
加入插入权限
在这里插入图片描述
查看userdata下的usertab表的内容
在这里插入图片描述
用户删除
在这里插入图片描述
也 可以
select Host,User,Password from mysql.user比较形象

方法2
GRANT SELECT INSERT   ON userdata.* TO westos@localhost IDENTIFIED BY 'wsp';##创建用户密码为wsp,权限为SELECT查看权限,INSERT插入权限。

在这里插入图片描述

REVOKE SELECT ON userdata.* FROM westos@localhost ##权限撤销revoke,回收查看权限

在这里插入图片描述撤销插入权限
测试:
在这里插入图片描述
具有查看权限,并切换到userdata数据库
在这里插入图片描述
可以看到禁止插入

########数据库备份与恢复:#########

mysqldump 
mysqldump -uroot -predhat --all-data ##所有的数据库资料备份
mysqldump -uroot -predhat --all-data --no-data  ##只备份数据结构,不备份数据部分



mysqldump -uroot -predhat userdata > /mnt/userdata.sql ##指定userdata数据库的备份
mysql -uroot -predhat -e "DROP DATABASE userdata;"
mysql -uroot -predhat -e "SHOW DATABASES;"

##恢复方式1:
[root@localhost ~]# mysql -uroot -predhat < /mnt/userdata.sql
ERROR 1046 (3D000) at line 22: No database selected

vim /mnt/userdata.sql
 21 CREATE DATABASE userdata;
 22 USE userdata;

mysql -uroot -predhat
SHOW DATABASES;
SELECT * FROM userdata.usertab;


##恢复方式2:
mysql -uroot -predhat -e "DROP DATABASE userdata;"
mysql -uroot -predhat -e "CREATE DATABASE userdata;"
vim /mnt/userdata.sql
##删除21,22行
mysql -uroot -predhat userdata < /mnt/userdata.sql ##指定导入到userdata库

mysqldump -uroot -predhat --all-data ##所有的数据库资料备份
在这里插入图片描述

mysqldump -uroot -predhat --all-data --no-data  ##只备份数据结构,不备份数据部分

在这里插入图片描述

mysqldump -uroot -predhat userdata > /mnt/userdata.sql ##指定userdata数据库的备份

在这里插入图片描述
在这里插入图片描述
可以看到userdata的信息
备份之后将userdata删除

mysql -uroot -predhat -e "DROP DATABASE userdata;"
mysql -uroot -predhat -e "SHOW DATABASES;"

在这里插入图片描述
##恢复方式1:修改备份文件
在这里插入图片描述

[root@localhost ~]# mysql -uroot -predhat < /mnt/userdata.sql
ERROR 1046 (3D000) at line 22: No database selected

显示没有数据库被选择,因此我们需要创建一个数据库,使备份的内容导入该数据库
在这里插入图片描述
21行创建数据库userdata
在这里插入图片描述
我们创建了数据库还需要在配置文件里使用它

vim /mnt/userdata.sql
21 CREATE DATABASE userdata;
22 USE userdata;
在这里插入图片描述

在这里插入图片描述
再次导入的时候提示已经存在数据库,但是数据库并没有内容,因此删除该数据库,重新导入新的数据库信息,新的数据库userdata创建成功。
mysql -uroot -predhat
SHOW DATABASES;
SELECT * FROM userdata.usertab;
在这里插入图片描述
##恢复方式2:导入备份文件
mysql -uroot -predhat -e “DROP DATABASE userdata;”
mysql -uroot -predhat -e “CREATE DATABASE userdata;”
vim /mnt/userdata.sql
##删除21,22行
在这里插入图片描述
用命令创建一个数据库
在这里插入图片描述
删除21,22行第一次编写的内容
mysql -uroot -predhat userdata < /mnt/userdata.sql ##指定导入到userdata库
恢复:
在这里插入图片描述
在这里插入图片描述

##密码更改和破解##
mysqladmin -uroot -predhat password westos

#超户密码忘记###
关闭数据库服务,跳过认证系统,进入数据库进行修改密码操作
systemctl stop mariadb

mysqld_safe --skip-grant-tables &

mysql
UPDATE mysql.user SET Password='redhat' WHERE User='root';  ##密码是明文
UPDATE mysql.user SET Password=password('redhat') WHERE User='root';  ##密码是密文
修改完毕退出数据库,关闭和数据库有关的所有进程,重启服务,用新密码登陆数据库。
ps aux | grep mysql

kill -9 mysql进程

systemctl start mariadb
mysql -uroot -predhat

##密码更改和破解##
mysqladmin -uroot -predhat password westos
在这里插入图片描述
将密码redhat更改为westos

######超户密码忘记###

systemctl stop mariadb

mysqld_safe --skip-grant-tables &

mysql
UPDATE mysql.user SET Password='redhat' WHERE User='root';  ##密码是明文

在这里插入图片描述
在这里插入图片描述
明文修改密码为redhat

UPDATE mysql.user SET Password=password('redhat') WHERE User='root';##加密字符修改密码方式

在这里插入图片描述
在这里插入图片描述
修改完毕退出数据库,关闭和数据库有关的所有进程,重启服务,用新密码登陆数据库。
ps aux | grep mysql

kill -9 mysql进程

在这里插入图片描述
systemctl start mariadb
mysql -uroot -predhat
在这里插入图片描述
#######phpMyAdmin###########

在网页中创建数据库
yum install -y httpd

firewall-cmd --permanent --add-service=http
firewall-cmd --reload
下载压缩包
 tar zxf phpMyAdmin-4.0.10.20-all-lanuages.tar.gz -C /var/www/html/    ##解压,使网页可以进入数据库图形界面
 mv  phpMyAdmin-4.0.10.20-all-lanuages     phpMyAdmin   ##重命名

yum install -y php       ##php语言,给阿帕奇的
systemctl restart httpd
下载软件包
yum install -y php-mysql   php-mbstring-5.4.16-21.el7.x86_64.rpm

systemctl restart httpd

浏览器访问:http://172.25.254.100/phpMyAdmin    把数据库解读为php支持的
root -->redhat

yum install -y httpd
在这里插入图片描述
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
在这里插入图片描述
下载压缩包

 tar zxf phpMyAdmin-4.0.10.20-all-lanuages.tar.gz -C /var/www/html/    ##解压
 mv  phpMyAdmin-4.0.10.20-all-lanuages     phpMyAdmin   ##重命名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
yum install -y php
systemctl restart httpd
在这里插入图片描述
下载软件包
yum install -y php-mysql php-mbstring-5.4.16-21.el7.x86_64.rpm
在这里插入图片描述
systemctl restart httpd
在这里插入图片描述
浏览器访问:http://172.25.254.100/phpMyAdmin
root -->redhat
在这里插入图片描述
在这里插入图片描述可以在网页中搜索pkgs下载各种需要的软件包

在这里插入图片描述
在这里插入图片描述
一个表只能有一个主键 可以有多个唯一键

索引:
树状适合范围查找
找到年龄段列 拿出来 排序 然后找大于18的
然后到源表中找对应的名字即可

hash只适合精确值查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

查看支持的引擎
在这里插入图片描述
在这里插入图片描述

如果服务器在本机

进程直接共享内存

即本机套接字访问

都监听套接字文件 /var/lib/mysql/mysql.sock

Linux打开一个文件来监听

在这里插入图片描述
专门用于套接字 unix sock通信的

在这里插入图片描述
mysqld 是服务器端的

在这里插入图片描述在这里插入图片描述

-e sql语句 -D指明数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相当于ctrl +c 别加;号
在这里插入图片描述
shell命令
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在MySQL中执行

在这里插入图片描述
在这里插入图片描述
所以脚本mysql用户需要有权限

在这里插入图片描述
在这里插入图片描述
char空间立即分配
varchar根据数据量不同占用的空间 但是不知道他总共有多少空间

在这里插入图片描述
set就是集合 只能选择集合中的数据
enum就是枚举 只能选男或者女 其他的不可以 但是存储时索引方式 0 1

在这里插入图片描述
在这里插入图片描述
help alter databases;就可以查看帮助怎么写

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
表创建
在这里插入图片描述在这里插入图片描述

查看表属性

在这里插入图片描述
只显示某一张表

在这里插入图片描述
在这里插入图片描述
修改表

在这里插入图片描述
change modify区别
在这里插入图片描述
change就是更改名字和后面的定义
如果不改名字 只改定义 就使用modify

在这里插入图片描述
表示创建索引 索引的名字还不是唯一的 MUL
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

创建和别的表结构一样的表
在这里插入图片描述
复制别人表数据

在这里插入图片描述
在这里插入图片描述
但是定义还需要自己定义

索引不可以修改 只能修改和删除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DML

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
显示时候的别名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不区分大小写

在这里插入图片描述
RLIKE正则匹配
在这里插入图片描述
排序
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
条件前面加not表示取反

在这里插入图片描述

表示删除年龄降序前100个人 也就是年纪最大的100位
在这里插入图片描述

在这里插入图片描述
也记得加where!!!!!!!

更新数据 不加where全部都改了
在这里插入图片描述
tom账号只能从@后面的主机地址登录服务器
用户一定是Mysql服务器的用户

而且mysql会反解这个主机名 所以需要跳过名称解析

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

普通用户看数据库需要授权
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
继续给该用户一个表的权限

在这里插入图片描述

客户端连接只能看到有一个表
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
回收权限:

在这里插入图片描述
在这里插入图片描述也可以直接查询自己拥有的权限
在这里插入图片描述
从67主机也可以看指定用户的权限

在这里插入图片描述
可以查看当前用户
在这里插入图片描述
在这里插入图片描述
node2
在这里插入图片描述
1.在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加一条
注意-e使用单引号 value里面的就要双引号
-e双引号 里面就要双引号
在这里插入图片描述
这样子就随机了
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值