1.数据库的介绍
【1】 什么是数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。大家可以理解为:数据库就是个高级的表格软件
【2】 常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver …
2.mariadb的安装
dnf install mariadb-server.x86_64 -y
3.软件基本信息
mariadb.service | 启动服务 |
---|---|
3306 | 默认端口号 |
/etc/my.cnf | 主配置文件 |
/var/lib/mysql | 数据目录 |
- 启动服务
netstat -antulpe | grep mysql
端口是3306
- 数据目录
rpm -ql mariadb-server
查看
4.数据库开启
systemctl enable --now mariadb
5.数据库的安全初始化
数据库开启之后,不用输入密码,mysql可直接登入,这样是不安全的。
所以我们要进行一系列的设置:
1.关闭数据库开放端口
vim /etc/my.cnf
编辑主配置文件
注意:不能直接写在[client-server]下,否则会影响数据库的登陆systemctl restart mariadb
netstatus -antlupe | grep mysql
此时查询不到端口,设置成功
2.执行安全初始化脚本
- mysql_secure_installation
Set root password? [Y/n] y 设置密码
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] Y 去掉匿名用户登陆数据库的权力
Disallow root login remotely? [Y/n] 去掉超级用户远程登陆的权力
Remove test database and access to it? [Y/n] Y 删除测试库
Reload privilege tables now? [Y/n] Y 刷新数据库
- 登录测试:此时mysql不能直接登录,安全性提高了
6.数据库的基本管理
一定不能忘记‘ ; ’的使用,注意大写!!
【1】查看
命令 | 作用 |
---|---|
SHOW DATABASES; | 显示库名称 |
USE mysql; | 进入mysql库 |
SHOW TABLES; | 显示库中的所有表 |
SELECT * FROM user; | 查询所有数据 |
SELECT Host,User,Password FROM user; | 查询指定字段 |
PS: 一列一列的被叫做字段,host字段,user字段等
练习:
SHOW DATABASES;
USE 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’); | 插入数据 |
- 建立原理:(自动建立目录,目录中会含有一些信息。)
在我们的系统中建立文件,删除文件后,该数据库就可能会消失,所以说,当我们重装数据库时,要将/var/lib/mysql/目录下的数据删掉。
数据库的卸载可按照下面操作进行:
[root@mariadb ~]# dnf remove mariadb-server
使用此命令,软件是被卸载了,但是其数据是会保留的
[root@mariadb ~]# cd /var/lib/mysql/
[root@mariadb mysql]# ls
aria_log.00000001 ib_buffer_pool ib_logfile0 multi-master.info mysql_upgrade_info
aria_log_control ibdata1 ib_logfile1 mysql performance_schema
[root@mariadb mysql]# rm -fr *
练习:
-
当命令比较长的时候可以采取下面的方法,排错方便。
如:CREATE TABLE linux (username varchar(6) not null, password varchar(30) not null);
-
DESC linux;
-
INSERT INTO linux VALUES ('user2','redhat');
在插入数据时,即使不想在里面写入东西,也要用‘ ’
来代替。
【3】更改
表的名称可以进行修改,但是!!不要去更改数据库的库名称,否则可能会导致数据的丢失。如果一定要对库名称进行更改,请先将数据进行备份,备份完后删除该库,然后新建想要名称的库,最后再将数据导入进去。
命令 | 作用 |
---|---|
ALTER TABLE linux RENAME lyq; | 更改表的名称 |
ALTER TABLE linux DROP age; | 删除指定字段 |
UPDATE linux SET sex=‘g’ WHERE username=‘user2’; | 修改数据 |
ALTER TABLE linux ADD age varchar(4) AFTER password; | 修改所插入字段的位置 |
练习:
-
添加性别
-
将linux重命名为lyq
-
ALTER TABLE linux ADD age varchar(4) AFTER password;
修改所插入字段的位置
-
UPDATE linux SET sex='g' WHERE username='user2';
修改数据
之前设定了sex的属性只有一个字符长度,所以在写入’boy’的时候会出现如下所表示的问题。
将‘boy’修改为‘b’后,如果不加以限定,那么所有用户的性别都会被修改
加以限定后,只会对针对用户进行修改
-
ALTER TABLE linux DROP age;
【4】删除
命令 | 作用 |
---|---|
DELETE from linux where username=‘user2’ and age=‘18’; | 删除库中的某个数据 |
DROP TABLE lyq; | 删除表 |
DROP DATABASE westos; | 删除库 |
练习:
- 我建立了两个user2,此时按照下述不同情况进行删除
不加条件限定时: DELETE from lyq where username=‘user2’;
加条件限定时:
新建两个user2进行测试
加上别的条件进行删除and age=''
- 删除表
- 删除库
7.数据密码管理
1.数据密码更改
mysqladmin -uroot -plee password westos
-
原密码为westos,修改密码为lee
-
此时密码修改成功
此处-plee只是为了让大家直观的看出密码是lee,在后续登陆的时候,使用 mysql -uroot -p后输入密码
【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的所有进程
-
systemctl start mariadb
后,登录发现修改成功
8.用户授权
CREATE USER lee@localhost identified by 'lee';
建立用户
localhost表明:lee只能在数据库安装的主机里登陆数据库
'%'表明:他可在任何的系统当中通过网络的登陆去管理数据库(此举只是授权,还要看端口,一般不选用此方法)
SHOW GRANTS for lee@localhost;
查看授权
root用户登陆数据库后建立一个westos
使用lee登陆后,无法看见之前所创建的westos
GRANT SELECT ON westos.* to lee@localhost;
授权
授权成功后lee登录后就可以看见
REVOKE SELECT ON westos.* FROM lee@localhost;
取消授权
取消成功
DROP user lee@localhost;
删除用户
9.数据库的备份
命令 | 作用 |
---|---|
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下 |
mysql -uroot -p123 -e “create database westos;” | 使用-e可直接执行mysql里的命令 |
练习:
mysqldump -uroot -p123 --all-database
完全备份数据库
mysqldump -uroot -p123 --all-database --no-data
只备份表的结构,不要数据库里的数据
mysqldump -uroot -p123 westos > /mnt/westos.sql
- 使用-e可直接执行mysql里的命令
10.phpmyadmin的安装
【1】前期准备
我们在apache部分已经安装了php
- dnf install httpd php php-mysqlnd -y
- systemctl enable --now httpd
- systemctl stop firewalld
- less README查看安装所需操作
【2】vim Documentation.txt
【3】修改配置文件
- vim config.inc.php
- firefox http://192.168.0.12/mysqladmin
登录后就可以在web中进行一系列的操作