一、数据库的介绍:
什么是数据库
数据库就是个高级的表格软件
常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver …
Mysql (SUN -----> Oracle)
mariadb:MariaDB数据库管理系统是MySQL的一个分支
二、mariadb的安装
三、软件基本信息:
mariadb.service | 启动服务 |
---|---|
3306 | 默认端口号 |
/etc/my.cnf | 主配置文件 |
/var/lib/mysql | 数据目录,当需要重新安装mariadb时需要清理此目录或备份 |
四、数据库开启 :
五、数据库的安全初始化:
关闭数据库开放端口
编辑配置文件关闭数据库开放端口/etc/
将查看不到端口
执行安全初始化脚本
是否移除匿名用户登录:n
是否不允许root用户远程登陆:n
是否删除测试表并且访问:n
是否重载权限表:n
默认不需要密码,初始化完毕后需要输入密码:
-p后可以直接输入明文密码登录,但命令历史里可以查看,安全度太低
六、数据库的基本管理:
查看
SHOW DATABASES; | 显示库名称 |
---|---|
USE mysql; | 进入mysql库 |
SHOW TABLES; | 显示库中的所有表 |
SELECT * FROM user; | 查询user的所有数据 |
SELECT Host,User,Password FROM user; | 查询指定字段 |
注:命令后有;才完整
用root用户登录数据库:
进入mysql库:
查看库中的所有表:
查看表的指定字段:
查看表的所有数据:
新建
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; | 刷新数据库 |
新建库:
新建表并查看表结构:
插入数据:
刷新数据库:
更改
ALTER TABLE westos RENAME linux; | 更改表名 |
---|---|
ALTER TABLE linux ADD age varchar(4) AFTER password; | 添加行 |
ALTER TABLE linux DROP age; | 删除行 |
UPDATE linux SET sex=‘g’ WHERE username=‘user2’; | 更改指定位置的数据 |
更改GANG行password列的数据:
将表westos重命名为linux:
添加class行和age行:
删除class行:
删除
DELETE from linux where username=‘user2’ and age=‘18’; | 删除指定位置的数据 |
---|---|
DROP TABLE linux; | 删除表 |
DROP DATABASE westos; | 删除库 |
删除Linux表中GANG所在的行:
删除Linux表中GUO所在的行的password列的数据:
删除Linux表:
删除sk库:
七、数据密码管理:
数据密码更改
mysqladmin -uroot -pwestos password doudou | 更改密码 |
---|
数据库密码破解
systemctl stop mariadb | 关闭服务 |
---|---|
mysqld_safe --skip-grant-tables & | 跳过认证环节 |
UPDATE mysql.user set Password=password(‘westos’) WHERE User=‘root’; | RHEL7 修改密码为westos |
UPDATE mysql.user set authentication_string=password(‘westos’) WHERE User=‘root’; | RHEL8 修改密码为westos |
kill -9 mysql | 杀死mysql的所有进程 |
systemctl start mariadb | 重启服务 |
八、用户授权:
CREATE USER sk@localhost identified by ‘doudou’; | 只能用localhost登陆 |
---|---|
CREATE USER sk@% identified by ‘%’; | 可以通过网络或localhost登陆 |
GRANT INSERT,SELECT ON westos.* TO sk@localhost; | 给本地用户插入和查看westos库下的表的权力 |
SHOW GRANTS for sk@localhost; | 查看本地用户的权限 |
REVOKE SELECT ON westos.* FROM sk@localhost; | 移除本地用户的查看权力 |
DROP user sk@localhost; | 移除本地用户 |
只允许localhost登录,并给予查看sk库的权限,然后查看权限:
测试查看权限:
移除本地用户sk的查看权限:
无法查看到库:
给本地用户sk添加对所有库的查看权限:
测试可以看到所有库:
九、数据库的备份:
备份
mysqldump -uroot -pwestos --all-database | 备份数据库中的所有数据 |
---|---|
mysqldump -uroot -pwestos --all-database --no-data | 备份所有库的表结构,不备份内容 |
mysqldump -uroot -pwestos sk’ | 备份数据库sk的所有信息 |
mysqldump -uroot -pwestos sk> /mnt/westos.sql | 备份数据库sk的所有信息,重定向到指定位置 |
初始数据库信息:
备份数据库的所有信息:
备份数据库的所有库的表结构:
备份库sk的所有信息:
备份库sk的所有信息,重定向到/mnt/westos.sql中:
查看备份文件内容:
备份恢复
mysql -uroot -pwestos -e “create database sk;” | 创建数据库sk |
---|---|
mysql -uroot -pwestos sk < /mnt/westos.sql | 将备份文件导入数据库 |
第一种是,直接创建库然后导入备份文件,恢复成功:
第二种编辑备份文件,添加创建库的命令,和进入库命令:
然后直接导入备份文件,恢复成功:
十、phpmyadmin的安装
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。
dnf install httpd php php-mysqlnd -y | 安装php相关服务 |
---|---|
systemctl enable --now httpd | 打开Apache服务 |
systemctl stop firewalld | 关闭火墙 |
tar zxf phpMyAdmin-3.4.0-all-languages.tar.gz -C /var/www/html | 解压phpmyadmin文件到Apache默认发布目录下 |
---|---|
cd /var/www/html/ | 移动到Apache默认发布目录下 |
mv phpMyAdmin-3.4.0-all-languages mysqladmin | 改名,也可以不改 |
cp config.sample.inc.php config.inc.php | 获取配置文件 |
网页访问:
可以通过Web接口管理MySQL数据库: