1.数据库的基本介绍
(1)数据库的定义
数据库就是个高级的表格软件
(2)常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver mariadb ...
(3)数据库中的常用名词
<1>. 字段:表格中的表头
<2>. 表:表格
<3>. 库:存放表格的目录
<4>. 查询:对表格中的指定内容进行查看
2.mariadb的安装、基本信息及启动
(1)安装
dnf install mariadb-server.x86_64 -y
(2)基本信息
mariadb.service //启动服务
3306 //默认端口号
/etc/my.cnf.d/mariadb-server.cnf //主配置文件
/var/lib/mysql //数据目录,当需要重新安装mariadb时需要清理此目录或备份
(3)启动
systemctl enable --now mariadb
3.数据库安全初始化脚本
mysql //无法登陆
mysql -uroot -p //使用密码进行登录
netstat -antlupe | grep mysql //查询端口信息
vim /etc/my.cnf.d/mariadb-server.cnf //编辑配置文件
编辑内容如下图所示
systemctl restart mariadb.service //重启数据库服务
netstat -antlupe | grep mysql
结果如下图所示
4.数据库的基本管理
(1)查看
SHOW DATABASES; //显示库名称
USE mysql; //进入mysql库
SHOW TABLES; //显示库中的所有表
SELECT * FROM user; //查询所有数据
SELECT Host FROM mysql.user WHERE User='root' //查询host字段user为root的数据
(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'),('user2','123'); //插入数据
FLUSH PRIVILEGES; //刷新数据库
SELECT * FROM linux;
(3)更改
ALTER TABLE user RENAME muu; //修改user表的名称为muu
SHOW TABLES;
ALTER TABLE linux ADD age varchar(4) AFTER password; //添加age字段长为4,列在password后边
SELECT * FROM linux;
ALTER TABLE linux DROP age; //删去age字段
UPDATE linux SET age='20'; //age全为20
SELECT * FROM linux;
UPDATE linux SET age='18' WHERE username='user2'; //user2的age为18
SELECT * FROM linux;
(4)删除
DELETE from linux where username='user2' and age='18'; //删除user2且age为18的数据
SELECT * FROM linux;
DROP TABLE linux; //删除linux表
SHOW TABLES;
DROP DATABASE westos; //删除westos库
SHOW DATABASES;
5.数据库密码管理
(1)数据密码更改
mysqladmin -uroot -pwestos password lee //将密码由westos更改为lee
(2)数据库密码破解
systemctl stop mariadb
mysqld_safe --skip-grant-tables & //后台启动mysql安全模式
ctrl+C
mysql -uroot -p //无需密码直接登录
SELECT * FROM mysql.user //列出user表的所有数据
UPDATE mysql.user set authentication_string=password('lee') WHERE User='root'; //修改密码
ps aux | grep mysql //查看进程
kill -9 mysql的所有进程 //(根据进程号删除)
systemctl start mariadb
6.用户管理与授权
(1)添加用户
CREATE USER lee@localhost identified by 'lee'; //只能用localhost登陆
CREATE USER westos@% identified by 'westos'; //可以通过网络或localhost登陆
(2)建立库和表
CREATE DATABASE westos
CREATE TABLE westos.linux(
username varchar(6)not null,
password varchar(40) not null
);
GRANT INSERT,SELECT ON westos.* TO westos@%; //给westos用户授权
SHOW GRANTS for westos@%; //查看授权信息
退出,切换westos用户登录,分别检验INSERT和SELECT
SHOW DATABASES;
INSERT INTO westos.linux VALUES ('user1','123');
REVOKE SELECT ON westos.* FROM lee@localhost; //取消授权
DROP user westos@%; //删除用户
7.数据库的备份与恢复
(1)备份
mysqldump -uroot -pwestos --all-database //备份所有数据
mysqldump -uroot -pwestos --all-database --no-data //只备份框架,不备份数据
mysqldump -uroot -pwestos westos
mysqldump -uroot -pwestos westos > /mnt/westos.sql //将备份数据导入/mnt/westos.sql中
(2)恢复
<1>
mysql -uroot -pwestos -e "create database westos;" //创建westos库, -e表示在shell中执行sql语句
mysql -uroot -pwestos westos < /mnt/westos.sql //将备份数据导入westos库中
<2>
vim /mnt/westos.sql
编辑内容
mysql -uroot -pwestos < /mnt/westos.sql //将备份数据导入westos库中