1.数据库的基本介绍
什么是数据库?
通过表格的方式保存数据的软件,类似excel的高级表格
多张表的集合叫做库
常见数据库:
Mysql Oracle mongodb db2 sqlite sqlserver ......
Mysql是开源的(SUN公司----->Oracle公司)
mariadb是Mysql的一种,maria是Mysql数据库创造者的女儿名字
数据库中的常用名词:
1.字段:表格中的表头,每一列为一个字段
2.表:表格,由很多字段组成
3.库:存放表格的目录
4.查询:对表格中指定内容进行查看
2.数据库的安装及安全初始化
配置好软件仓库
dnf install mariadb-server -y
#安装mariadb软件
systemctl enable --now mariadb
#数据库开启
软件基本信息:
mariadb.server #启动服务
3306 #默认端口号
/etc/my.cnf.d/mariadb-server.cnf #主配置文件
/var/lib/mysql #数据目录,当需要重新开启mariadb时需要清理此目录或备份
数据库的安全初始化:
1.关闭数据库开放端口:
vim /etc/my.cnf.d/mariadb-server.cnf
systemctl restart mariadb
netstat -antlupe | grep mariadb
#此命令查询不到端口
2.执行安全初始化脚本
测试:
mysql -uroot -p
#登录数据库
ll /var/lib/mysql
#查看mysql数据目录
#如果想重装数据库,需清除数据目录原有数据
3.数据库的基本管理
1.查看
SHOW DATABASES;
##显示库名称
USE mysql;
#进入mysql库
SHOW TABLES;
#显示库中的所有表
SELECT * FROM user;
#查看表user中数据
SELECT Host,User,Password FROM user;
#查询表user的指定字段
#user为相对路径,mysql.user为绝对路径
SELECT Host,User,Password FROM mysql.user WHERE Host='localhost';
SELECT Host,User,Password FROM mysql.user WHERE Host='localhost' AND User='root';
2.新建
CREATE DATABASE westos;
#新建库
CREATE TABLE userlist (
username VARCHAR(8) not null,
password VARCHAR(50) not null
);
#新建表,VARCHAR(50)表示长度最长50个字符
DESC westos.userlist;
#查看表结构
INSERT INTO westos.userlist VALUES ('user1','123'),('user2','123');
#插入数据,括号内依次输入每个字段的数据,多个数据用逗号隔开
FLUSH PRIVILEGES;
#刷新数据库
3.更改
更改库的名称可以将数据目录中的文件重命名(mv oldfilename newfilename)
但一般情况不更改,可能会导致数据错乱
ALTER TABLE userlist RENAME linux;
#更改表名
ALTER TABLE userlist ADD age VARCHAR(4);
#添加字段,若不说明位置,默认添加到最后
ALTER TABLE userlist DROP age;
#丢弃字段
ALTER TABLE userlist ADD age varchar(4) AFTER username;
#指定在将字段添加在username字段后
UPDATE userlist SET age=18;
#更改字段数据,不加说明默认该字段修改所有数据
UPDATE userlist SET age=20 WHERE username='user1';
#更改username='user1'的数据age为20
4.删除
DELETE FROM userlist WHERE username='user2' AND age='18';
#删除userlist表内username='user2' AND age='18'的数据
ALTER TABLE userlist DROP age;
#丢弃字段,删除一列数据
DROP TABLE userlist;
#删除表
DROP DATABASE westos;
#删除库
4.数据库密码管理
1)数据库密码更改
mysqladmin -uroot -pwestos password lee
2)数据库密码破解
systemctl stop mariadb
#关闭数据库
mysqld_safe --skip-grant-table &
#启动数据库安全模式,跳过授权表,&打入后台
UPDATE mysql.user SET Password=password('westos') WHERE user='root';
#使用过mysqladmin修改过密码
UPDATE mysql.user SET authentication_string=password('westos') WHERE user='root';
#使用过mysqladmin修改过密码
ps aux | grep mysql
kill -9 mysql所有进程
systemctl start mariadb
5.数据库的授权操作
CREATE USER lee@'localhost' identified by 'lee';
#只能用localhost登录,只能在数据库所在的主机中使用
CREATE USER lee@% identified by 'lee';
#可以通过网络或localhost登录
SHOW GRANTS FOR lee@localhost;
#查看权限
GRANT INSERT,SELECT ON westos.* to lee@localhost;
#给lee@localhost用户对westos.*授权插入和查询
REVOKE SELECT ON westos* FROM lee@localhost;
#收回用户lee对westos.*的查询权力
DROP USER lee@localhost;
#删除用户
6.数据库的备份及还原
mysql -uroot -p -e "命令"
#不登陆数据库,直接执行引号内命令
mysqldump -uroot -p --all-database
#输出所有数据
mysqldump -uroot -p --all-database --no-data
#只输出库和表的结构,不输出数据
mysqldump -uroot -p westos
#输出westos库
备份:
命令后加 > file
mysqldump -uroot -p westos > /mnt/westos.sql
数据恢复:
mysql -uroot -p -e "DROP DATABASE westos;"
#删除库westos
方法一:
mysql -uroot -pwestos -e "CREATE DATABASE westos;"
mysql -uroot -p westos < /mnt/westos.sql
方法二:
mysql -uroot -p -e "DROP DATABASE westos;"
#删除库westos
vim /mnt/westos.sql
CREATE DATABASE westos;
USE westos;
mysql -uroot -pwestos < /mnt/westos.sql
7.数据库的web控制器
PhpMyAdmin
dnf install httpd php php-mysqlnd -y
systemctl enable --now httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
firewall-cmd --list-all