1.数据库的介绍
1.1.什么是数据库
数据库就是个高级的表格软件
1.2.常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver …
1.3.Mysql (SUN -----> Oracle)
1.4.mariadb
数据库中的常用名词
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.数据库的安全初始化
5.1.关闭数据库开放端口
#vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
skip-networking=1
#systemctl restart mariadb
#netstat -antlupe | grep mysql #此命令查询不到端口
5.2.执行安全初始化脚本
# mysql_secure_installation
# mysql ##默认不需要密码,初始化完毕后需要
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# mysql -uroot -p ## -u 指定登陆用户 -p 密码 -e 执行
6.数据库的基本管理
6.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'
6.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; #刷新数据库
>SELECT * FROM linux; #查看表中内容
6.3.更改
>ALTER TABLE linux RENAME tom; #表名称更改
>ALTER TABLE linux ADD id varchar(4) AFTER username;#新增列,若没有after,默认放在最后
>ALTER TABLE linux DROP id; #删除列
>UPDATE linux SET sex='g' WHERE username='user2'; #指定对象的内容修改
6.4.删除
>DELETE from linux where username='user2' and password='456'; #删除表中指定对象的内容
>DROP TABLE linux; #删除表
>DROP DATABASE westos; #删除库
7.数据密码管理
7.1.数据密码更改
mysqladmin -uroot -p password westos
7.2.数据库密码破解
#systemctl stop mariadb
#mysqld_safe --skip-grant-tables &
>UPDATE mysql.user set Password=password('lee') WHERE User='root'; ##当未使用过mysladmin更改过密码
>UPDATE mysql.user set authentication_string=password('lee') WHERE User='root'; ##当使用过mysladmin更改过密码
8.用户授权
只有root用户可以进行用户授权等操作
用户名@% ##通过远程登陆
用户名@localhost ##只能通过本地登陆
#mysql -uroot -p123
>CREATE USER sss@localhost identified by '456'; ##授权本地用户登陆数据库
用户名 密码
>CREATE USER xxx@% identified by '789'; ##授权网络用户登陆数据库
#mysql -usss -p456
>SHOW DATABASES;
#mysql -uroot -p123
>GRANT INSERT,SELECT,DELETE ON mysql.* TO sss@localhost; ##用户授权(查看,插入,删除)
>SHOW GRANTS for sss@localhost; ##列出用户权限
>REVOKE SELECT ON mysql.* FROM sss@localhost; ##撤销用户权限插入(此时用户在数据库中可以查看,但无法在库中的表里插入数据)
>DROP user sss@localhost; ##删除用户
9.数据库的备份与恢复
mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。
#mysqldump -uroot -p123 --all-database ##备份所有库
#mysqldump -uroot -p123 --all-database --no-data ##备份所有库的结构,不备份数据
#mysqldump -uroot -p123 westos ##备份指定数据库
#mysqldump -uroot -p123 westos > /mnt/westos.sql ##指定路径备份指定数据库
#mysqldump -uroot -p123 westos < /mnt/westos.sql ##恢复数据库
test1:
备份+恢复
mysql -uroot -p123 -e "SELECT * FROM westos.linux" ##绝对路径列出库中表的信息(-e 执行)
mysqldump -uroot -p123 westos > /mnt/westos.sql ##备份westos库到/mnt/westos.sql
mysql -uroot -p123 -e "DROP DATABASE westos" ##删除库
mysql -uroot -p123 -e "SELECT * FROM westos.linux" ##列出库中表的信息,提示不存在
mysql -uroot -p123 -e "CREATE DATABASE westos" ##新建westos库
mysql -uroot -p123 westos < /mnt/westos.sql ##执行/mnt/westos.sql文件中的insert 语句,恢复
mysql -uroot -p123 -e "SELECT * FROM westos.linux" ##列出库中表的信息
test2:
为了操作便捷,我们可以在导出的/mnt/westos.sql文件中添加创建westos库并使用该库的SQL语句,这样在删除westos库后,只需要执行/mnt/westos.sql文件中的insert 语句就可以成功还原westos库
#vim /mnt/westos.sql
21 CREATE DATABASE westos;
22 USE westos;
#mysql -uroot -p123 < /mnt/westos.sql
10.phpmyadmin的安装
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口管理者可以直接通过网页这种简易方式处理大量资料的汇入及汇出,避免输入繁杂的SQL语句。
#dnf install httpd php php-mysqlnd -y
#systemctl enable --now httpd
#systemctl stop firewalld
#wget http://172.25.254.250/software/phpMyAdmin-3.4.0-all-languages.tar.bz2
#cp phpMyAdmin-3.4.0-all-languages.tar.gz /var/www/html/ ##复制phpmyadmin压缩包到http共享目录/var/www/html下
#cd /var/www/html/
#tar zxf phpMyAdmin-3.4.0-all-languages.tar.gz ##解压
#mv phpMyAdmin-3.4.0-all-languages/ test ##重命名
#cd mysqladmin
#cp config.sample.inc.php config.inc.php 复制phpmyadmin的配置文件模板后重命名
#vim config.inc.php
$cfg['blowfish_secret']='ba17c1ec07d65003'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
#systemctl restart httpd
firefox http://172.25.254.131/test