目录
一、mysql数据库
1、mysql的概念
MySQL是一个关系型数据库管理系统,是最流行的数据库管理系统之一。在 web应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
2、常见的数据库
常用数据库有mysql、oracle、sqlserver、sqlite、postgreSQL等。
3、数据库中的常用名词
字段 | 表格中的表头 |
表 | 表格 |
库 | 存放表格的目录 |
查询 | 对表格中指定的内容进行查看 |
二、mariadb
1、mariadb的安装与启动
dnf install mariadb-server.x86_64 -y下载mariadb服务
开启
2、mariadb数据库软件的基本信息
mariadb.service | 启动服务 |
3306 | 默认端口 |
/etc/my.cnf.d/mariadb-server.cnf | 主配置文件 |
/var/lib/mysql | 数据目录,当需要重新安装mariadb时需要清理此目录或备份 |
三、数据库的安全初始化
1、关闭端口
使用netstat -antlupe | grep mysql查看mysql端口,可以看到端口处于开启状态,为加强数据库的安全性,避免非法用户通过该端口获取数据库数据编辑vim /etc/my.cnf.d/mariadb-server.cnf设置跳过网络功能开启数据库,再次查询端口可以看到无开放的端口
2、执行安全初始化脚本,设定数据库密码
重启mariadb后可以使用mysql命令直接登陆数据库,此时不需要密码,quit退出数据库
使用mysql_secure_installation为数据库设定密码,原数据库没有密码,直接回车-->是否设置管理员密码y-->设置新密码-->删除匿名用户y-->不允许用户远程登陆y-->删除测试数据库并y-->是否重新加载特权y
在给数据库设置完密码后,无法再次直接使用mysql数据库登陆,此时需要使用身份验证加密码登陆
四、数据库的基本管理
(1)查看
SHOW DATABASES; | 显示库名称 |
USE mysql; | 进入mysql库 |
SHOW TABLES; | 显示库中的所有表 |
SELECT * FROM user; | 查询所有数据 |
SELECT Host,User,Password FROM user; | 查询指定字段 |
SELECT Host FROM mysql.user WHERE User='root' | 在mysql数据库的user表中查询指定数据为root的Host字段 |
(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'); | 插入数据 |
FLUSH PRIVILEGES; | 刷新数据库 |
(3)更改
ALTER TABLE redhat RENAME linux; | 更改表的名称 |
ALTER TABLE linux ADD age varchar(4) AFTER password; | 在password后添加age属性 |
ALTER TABLE linux DROP age; | 删除age属性 |
UPDATE linux SET sex='g' WHERE username='user2'; | 给用户名为user2设置性别为女 |
(4)删除
DELETE from linux where username='user2' and age='18'; | 删除用户名为user2年龄为18的所有数据 |
DROP TABLE linux; | 删除linux表 |
DROP DATABASE westos; | 删除数据库westos |
五、数据密码管理
1、数据密码更改(已知密码)
mysqladmin -uroot -plee password westos
使用新的密码可以登陆数据库
2、数据库密码破解(密码未知)
关闭mariadb,使用mysqld_safe --skip-grant-tables &打入后台(否则会占用系统终端)
修改密码信息
设定password(‘westos’),密码在user表中authentication_string字段处的值是密文存储
更改完成后将后台进程调回前台运行,kill所有数据库的安全模式进程
开启mariadb服务,此时就可以使用破解数据库后修改的密码登录数据库
3、用户授权
以root身份登陆mysql(因为只有root用户可以进行用户授权等操作),创建新用户(用户名@localhost-该用户只能通过本地方式登陆;用户名@%-该用户能通过本地方式和网络登陆;identified by ‘用户密码’)
重新的打开一个shell,使用用户westos登陆数据库,此时无法看到mariadb中的库
在使用root登陆数据库的shell中,对用户westos授权,查看用户权限可以看到授权成功
在使用westos登陆的shell中查看数据库,可以看到westos数据库
在root的登陆数据库的shell中对用户进行插入、删除的授权,完成授权后查看用户westos的权限
使用westos登陆的数据库此时无法创建表,但可以给插入数据和删除数据
4、数据库的备份
mysqldump -uroot -p123 --all-database |
mysqldump -uroot -p123 --all-database --no-data |
mysqldump -uroot -p123 westos |
mysqldump -uroot -p123 westos > /mnt/westos.sql |
备份所有库和备份所有库的结构不备份数据各自对应的insert 语句数量统计
备份westos库,将对应的insert 语句输出重定向到/mnt/westos.sql文件中
删除westos库,查询westos库中linux表中所有数据,提示该表不存在,此时可以新建westos库,执行/mnt/westos.sql文件中的insert 语句,再次查询westos库中linux表中所有数据,成功还原westos库
为了操作便捷,我们可以在导出的/mnt/westos.sql文件中添加创建westos库并使用该库的SQL语句,这样在删除westos库后,只需要执行/mnt/westos.sql文件中的insert 语句就可以成功还原westos库
六、phpmyadmin的安装
mysql数据库在linux系统中的图形插件
dnf install httpd php php-mysqlnd -y
systemctl enable --now httpd
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
cp config.sample.inc.php config.inc.phpfirefox http://192.168.0.12/mysqladmin
安装httpd、php、php-mysqlnd
在防火墙中设置允许访问http,刷新防火墙使设定生效