1.数据库的介绍
1)什么是数据库
数据库就是个高级的表格软件
数据库,我们可把它比喻成存放数据的仓库。它是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中保存的是以一定的组织方式存储在一起的相互有关的数据整体。即数据库不仅保存数据,还保存数据之间的联系。数据库中的数据可以被多个应用程序的用户所使用,达到数据共享的目的。
数据库管理系统,是位于用户与操作系统之间的一层数据管理软件。它和操作系统一样是计算机的基础软件,也是一个大型复杂的软件。例如Oracle、Microsoft SQL Server、Visual FoxPro、Access等。它们建立在操作系统的基础上,对数据库进行统一的管理和控制。其功能包括数据库定义、数据库管理、数据库建立与维护以及与操作系统通信等。
2)常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver …
3)Mysql (SUN -----> Oracle)
4)mariadb(Mysql下的一个分支)
2.mariadb的安装
dnf search mariadb ##查找数据库安装包
dnf install mariadb-server.x86_64 -y ##安装数据库安装包
3.软件基本信息
mariadb.service ##启动服务
3306 ##默认端口号
/etc/my.cnf ##主配置文件
/var/lib/mysql ##数据目录
4.数据库的安全初始化
1)关闭数据库开放端口
vim /etc/my.cnf
[mysqld]
skip-networking=1 ##让数据库在网络中的功能跳过(开启)
systemctl restart mariadb
netstatus -antlupe | grep mysql ##此命令查询不到端口
2)执行安全初始化脚本
mysql_secure_installation
[root@rhel8_node1 ~]# mysql ##默认不需要密码,初始化完毕后需要
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@rhel8_node1 ~]# mysql -uroot -p ## -u 指定登陆用户 -p 密码
5.数据库的基本管理
1)查看
SHOW DATABASES; ##显示库名称
USE mysql; ##进入mysql库
SHOW TABLES; ##显示库中的所有表
SELECT * FROM user; ##查询所有数据
SELECT Host,User,Password FROM user; ##查询指定字段
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'); ##插入数据
3)更改
ALTER TABLE redhat RENAME linux; ##更改表的名称
ALTER TABLE linux ADD age varchar(4) AFTER password; ##在表中添加一种数据属性,并指定它的位置
ALTER TABLE linux DROP age; ##删除表中age属性(数据结构)
UPDATE linux SET sex='boy' WHERE username='user2';##往表中添加数据
4)删除
DELETE from linux where username='user2'; ##删除表中数据
DROP TABLE linux; ##删除表
DROP DATABASE westos; ##删除库
6.数据密码管理
1)数据密码更改
知道密码情况下,可以直接更改为自己想要的密码:
mysqladmin -uroot -plee password westos
2)数据库密码破解
忘记密码时:
systemctl stop mariadb ## 关闭数据库
mysqld_safe --skip-grant-tables & ##单用户模式启动数据库,跳过数据库的授权表,
##直接用mysql登录,登录后再去更改密码
查看原始密码加密字符串
UPDATE mysql.user set Password=password('123') WHERE User='root';
flush privileges; ##刷新库里面的信息
更改后的密码加密字符串和原始密码对比,不一致,更改成功
kill -9 mysql的所有进程 ##强制结束mysql所有进程
systemctl start mariadb ##开启mariadb数据库
7.用户授权
CREATE USER lee@localhost identified by 'lee'; ##建立用户
lee@localhost ##表示lee只能在数据库安装的主机中登录数据库
lee@’%’ ##表示可以在任何的系统中通过网络登录数据库(能登录的前提是端口开启)
GRANT SELECT ON westos.* TO lee@localhost; ##对用户lee授权可以去看westos库中信息
SHOW GRANTS for lee@localhost; ##显示对用户lee下放的权力
以用户lee身份登录数据库,可以看到自身权限内的所有信息
REVOKE SELECT ON westos.* FROM lee@localhost; ##撤销用户lee权力
DROP user lee@localhost; ## 删除用户lee
8.数据库的备份
mysqldump -uroot -p123 --all-database ##把数据库里的所有表完全备份
mysqldump -uroot -p123 --all-database --no-data ##只备份表的结构,不备份数据库里的数据
mysqldump -uroot -p123 westos ##对westos库进行备份
mysqldump -uroot -p123 westos > /mnt/westos.sql 将westos库完全备份到 /mnt/westos.sql文件中
mysql -uroot -p123 -e "drop database westos;" ##删除westos库
mysql -uroot -p123 -e "create database westos;" ##创建新的westos库
mysql -uroot -p123 westos < /mnt/westos.sql ##将备份的数据内容导入到新建的westos库中
9.安装phpmyadmin数据库图形管理
下载phpMyAdmin-3.4.0-all-languages.tar.gz图形管理工具包
dnf install php php-mysqlnd -y
systemctl enable --now httpd
本机已经安装过httpd服务器,现在只需安装php、php-mysqlnd安装包
关闭防火墙,复制phpMyAdmin-3.4.0-all-languages.tar.gz到httpd服务器默认发布目录中,解压,更改目录名称,进入mysqladmin 目录
systemctl stop firewalld
cp phpMyAdmin-3.4.0-all-languages.tar.gz /var/www/html/
cd /var/www/html/
tar zxf phpMyAdmin-3.4.0-all-languages.tar.gz
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
cd mysqladmin
浏览mysqladmin中的Documentation.txt文档,按照安装规则和策略执行
cp config.sample.inc.php config.inc.php
vim config.inc.php
$cfg['blowfish_secret'] = 'ba17c1ec07d65003';
测试:
在浏览器中输入http://192.168.1.11/mysqladmin,看是否有数据库图形化管理工具出现
登录到phpmyadmin数据库图形管理工具内,新建库并添加数据信息
执行完成后,会生成sql语句
验证图形管理工具下建立的库是否被系统真正的管理