一、数据库的介绍
1. 数据:事件或实体的描述信息
2. 数据库:高级的shell表,表的目录:库
3. 数据库类型:
Oracle(收费,cpu核心数量,单/双,稳定性高),mysql,lamp(linux+apache+mysql+php/python/perl)
lnmp(linux+ndix+mysql+php/python/perl)
二、软件基本信息
1. 服务名称 :mariadb.service
2.服务默认端口号:3306
3. 服务的主配置文件: /etc/my.cnf.d/mariadb-server.cnf
4. 服务的数据目录: /var/lib/mysql
三、数据库的安全初始化
1.设定进入mysql需要密码
实验步骤:
(一)安装mariadb,开启mariadb服务
输入mysql命令时候不需要密码,mysql -uroot -p需要密码
(二)mysql_secure_installation ##执行安全初始化脚本
作用:mysql -uroot -p需要密码,-u指定用户,root可以,其他用户不可以,-p输入密码
2.对端口加密
实验步骤:
(一)查看mysql端口:netsatat -antlupe | grep mysql
(二)/etc/my.cnf.d/mariadb-server.cnf文件中加入一行:skip-networking=1
(三)加密后查看不到mysql端口
四、数据库的基本管理
1.查看
SHOW DATABASES; ##显示库名称
USE mysql; ##进入mysql库
SHOW TABLES; ##显示库中的所有表
SELECT * FROM user; ##查询所有数据
SELECT Host,User,Password FROM user; ##查询Host,User,Password指定字段
(1)SHOW DATABASES; ##显示库名称
(2)USE mysql; ##进入mysql库
(3)SELECT * FROM user; ##查询所有数据;
(4)SELECT Host,User,Password FROM user; ##查询Host,User,Password指定字段
2.新建
CREATE DATABASE westos;##新建库
CREATE TABLE linux (username varchar(6) not null,password varchar(30) not null);##新建表
DESC linux; ##显示表结构
INSERT INTO linux VALUES ('user1','123');##表中插入数据
FLUSH PRIVILEGES;#刷新数据库
(1)CREATE DATABASE westos; ##新建库
(2)CREATE TABLE linux (username varchar(6) not null,password varchar(20) not null); ##新建表
(3)DESC linux; 显示表的结构
(4)INSERT INTO linux VALUES (‘user1’,‘123’),(‘user2’,‘456’);##表中插入数据
3.更改
ALTER TABLE redhat RENAME linux; ##修改表名为linux
ALTER TABLE linux ADD age varchar(4) AFTER password; ##表中password后添加age
ALTER TABLE linux DROP age; ##删除表中的age
UPDATE linux SET sex='g' WHERE username='user2'; ##设定表中某些数值
(1)修改库名
库名一般不更改, 库的位置:/var/lib/myql中有库名的文件,mv 修改库的名称, 修改库名后,需要重启服务mariadb
(2)ALTER TABLE 原始名称 RENAME 新名; ##修改表名
(3)表中添加,默认在后:ALTER TABLE 表名 ADD 名和类型和长度 not null;
可以使用AFTER选择添加的位置
4.删除
DELETE from linux where username='user2' and age='18';##删除表中某些数值
DROP TABLE linux;##删除表
DROP DATABASE westos;##删除库
(1)DELETE from linux where username=‘user’ and age=‘123’;##删除表中某些数值
(2)DROP TABLE linux; ##删除表
(3)DROP DATABASE westos;##删除库
五、数据密码管理
1.用户密码修改:使用mysqladmin
mysqladmin -uroot -p 密码 password 原密码
2.数据库密码破解
实验步骤:
(一)systemctl stop mariadb
(二)mysqld_safe --skip-grant-tables &打入后台
mysql 可以直接可以登陆
(三)使用mysqladmin修改过密码
如果未使用mysqladmin修改过密码: UPDATE mysql.user SET Password=‘密码’ WHERE
User=‘原密码’;
(四)用passwd字段的authentication_string,UPDATE mysql.user SET authentication_string=‘密码’ WHERE User=‘原密码’;
使用passwd加密 : UPDATE mysql.user SET authentication_string=password(‘密码’)
WHERE User=‘原密码’;
(五)fg调回前台,crtl+Z停止进程
(六)杀死与mysqul有关的所有进程
kill -9 杀死进程
ps aux|grep mysql #过滤mysql的进程
(七)systemctl restart mariadb 重启服务
测试:
六、数据库的备份
mysqldump -uroot -p123 --all-database ##备份所有库;
mysqldump -uroot -p123 --all-datebase --no-date ##只备份库的结构,不备份库的数据;
mysqldump -uroot -p123 westos ##直接显示库的数据;
mysqldump -uroot -p123 westos > /mnt/westos.sql ##将库的信息备份到指定文件中
建立素材:
1. mysqldump -uroot -p123 --all-database ##备份所有库
2. mysqldump -uroot -p123 --all-datebase --no-date ##只备份库的结构,不备份库的数据
3. 删除数据库后如何恢复?
方法一:
(1)mysqldump -uroot -p123 westos > /mnt/westos.sql ##将库的信息备份到指定文件中
(2)删除westos1库
(3)先建立此库,将备份的文件重新定向到westos1库,恢复库中的数据
测试:
方法二
(1)删除westos1库
(2)编写 /mnt/westos1.sql 文件
(3)将备份的文件重新定向到westos1库,恢复库中的数据
测试:
七、用户授权
CREATE USER westos@localhost identified by ‘westos’;
##只能westos用户用 localhost 方式登陆,密码为westos;
CREATE USER westos@% indentified by ’westos’ ; ##可以通过网络或者localhost 登陆
GRANT INSERT,SELECT ON westos.* TO westos@localhost; ##授权登录和插入;
SHOW GRANTS for westos@localhost; ##查看授权信息;
REVOKE INSERT,DELETE ON westos.* FORM westos@localhost; ##取消插入和删除的权限;
DROP user westos@localhost; ##删除用户
实验步骤
1.CREATE USER westos@localhost identified by ‘westos’;
设定只能westos用户用 localhost 方式登陆,密码为westos;
2. SHOW GRANTS for westos@localhost; ##查看授权信息
3.GRANT INSERT,SELECT ON westos.* TO westos@localhost; ##授权登录和插入
4. REVOKE INSERT,DELETE ON westos.* FORM westos@localhost; ##取消插入和删除的权限
5. DROP user westos@localhost; ##删除用户
八、phpMyadmin:web界面管理mysql
1. 安装httpd和php服务
开启 httpd 服务服务,关闭火墙
2. php 默认不支持数据库
3. 安装 php-mysqlnd.x86_64 插件,支持数据库
4. 找到第三方软件包所在位置,将压缩包解压,重命名为 mysqladmin
5.在 mysqladmin 目录中查看README文件
6. 在 mysqladmin 目录中查看Documentation.txt 软件安装文档内容
上面四步都需要操作,只有第四步未完成
7. 复制模板config.sample.inc.php,生成配置文件config.inc.php
重启httpd服务
8. 测试:
通过远程主机访问 172.25.254.104 主机下的/mysqladmin, 输入密码即可登录数据库
9. web界面下操作数据库
(1)在westos1数据库中新建一个表
(2)在表中添加数据项
(3)修改表中的内容