1.数据库的介绍
数据库就是个高级的表格软件,常见数据库有Mysql 、Oracle 、mongodb、 db2、 sqlite、 sqlserver、 等等
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。
##数据库中的常用名词##
1.字段 :表格中的表头
2.表 :表格
3.库 :存放表格的目录
4.查询 :对表格中的指定内容进行查看
2.mariadb的安装
dnf install mariadb-server.x86_64 -y
3.软件基本信息
mariadb.service ##启动服务
3306 ##默认端口号
/etc/my.cnf.d/mariadb-server.cnf ##主配置文件
/var/lib/mysql ##数据目录,当需要重新安装mariadb时需要清理此目录或备份
4.数据库开启
systemctl enable --now mariadb
5.数据库的安全初始化
1.关闭数据库开放端口
vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
skip-networking=1
systemctl restart mariadb
netstat -antlupe | grep mysql #此命令查询不到端口表示端口关闭
未修改之前可查询到3306端口
在/etc/my.cnf.d/mariadb-server.cnf中添加skip-networking=1后查询不到端口
2.执行安全初始化脚本
[root@Mariadb ~]# mysql ##默认不需要密码,初始化完毕后需要
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
安全初始化脚本
mysql_secure_installation
所有提示全部 yes
此时的数据库需要用户名和密码登陆
[root@Mariadb ~]# mysql -uroot -p ## -u 指定登陆用户 -p 密码
密码不要在-p后面输入,在此输入可以通过历史命令调处密码,为了安全回车输入密码进入数据库
6.数据库的基本管理
1.查看
SHOW DATABASES; ##显示库名称
USE mysql; ##进入mysql库
SHOW TABLES; ##显示库中的所有表
SELECT * FROM user; ##查询User表的所有数据
SELECT Host,User,Password FROM user; ##查询指定字段
SELECT Host FROM mysql.user WHERE 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; #刷新数据库
3.更改
ALTER TABLE redhat RENAME linux;
现有表名 更改后的表名
`ALTER TABLE linux ADD age varchar(4) AFTER password; #在linux表中的passwd后添加age varchar(4`)
ALTER TABLE linux DROP age; #删除linux表中 age一整列
UPDATE linux SET age='20' WHERE username='user1';
数据修改位置 指定的用户名
4.删除
DELETE FROM linux WHERE username='user2' and age='18';
DROP TABLE linux; #删除表
DROP DATABASE westos; #删除库
7.数据密码管理
1.数据密码更改
mysqladmin -uroot -plee password westos
2.数据库密码破解
systemctl stop mariadb #关闭mariadb
mysqld_safe --skip-grant-tables &
####进入数据库、打开mysql(USE mysql;)、展开mysql中的所有表(SHOW TABLES;)、打开user表(SELECT * FROM user;)
UPDATE mysql.user set Password=password('lee') WHERE User='root'; ##当未使用过mysladmin更改过密码
UPDATE mysql.user set authentication_string=password('lee') WHERE User='root'; ##当使用过mysladmin更改过密码
这里由于前面使用mysladmin更改过密码所以使用第二种方法
flush privileges;
ps aux | grep mysql
kill -9 mysql的所有进程
systemctl start mariadb
8.用户授权
1)以root身份登陆mysql(因为只有root用户可以进行用户授权等操作),创建新用户(用户名@localhost-该用户只能通过本地方式登陆;用户名@%-该用户能通过本地方式和网络登陆;identified by ‘用户密码’)
CREATE USER lee@localhost identified by 'lee'; ##只能用localhost登陆
CREATE USER lee@% identified by '%'; ##可以通过网络或localhost登陆
2)用户创建完成后,在另一个shell里用新建用户身份登录进入数据库,显示所有的库,新建用户不能看到mariadb中的库
3)回到以root身份登陆mysql的shell中,对新建用户进行授权,允许其进行查看操作,完成授权后查看新建用户的权限,授权成功
GRANT INSERT,SELECT ON lee.* TO lee@localhost;
4)此时新建用户在数据库中可以进行查看操作,但无法在库中的表里插入数据
5)在以root身份登陆mysql的shell中,对新建用户进行授权,允许其进行插入、删除等操作,完成授权后查看新建用户的权限,授权成功
5)我们以root身份登陆mysql后,可以随时撤销对新建用户的授权,撤销授权后查看新建用户的权限,撤销成功,接着可以删除该新建用户
SHOW GRANTS for lee@localhost;
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
mysqldump -uroot -p123 westos > /mnt/westos.sql
test1:
mysql -uroot -p123 -e "create database westos;"
mysql -uroot -p123 westos < /mnt/westos.sql
test2:
vim /mnt/westos.sql
CREATE DATABASE westos;
USE westos;
mysql -uroot -p123 < /mnt/westos.sql
10.phpmyadmin的安装
phpmyadmin是一个以PHP为基础,以web方式将数据库展现在网站上的数据库管理工具
dnf install httpd php php-mysqlnd -y #安装httpd php php-mysqlnd
systemctl enable --now httpd #开启httpd
systemctl stop firewalld #关闭防火墙
当以上php-mysqlnd安装成功后 php -m可以查看到php中加载了数据库模块
从网络软件仓库中下载phpmyadmin压缩包到http共享目录/var/www/html下(虚拟主机上已有phpmyadmin的压缩包),解压缩
cp phpMyAdmin-3.4.0-all-languages.tar.gz /var/www/html/
cd /var/www/html/
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
cd mysqladmin
cp config.sample.inc.php config.inc.php
firefox http://192.168.0.12/mysqladmin