文章目录
1. 数据库的介绍
- 什么是数据库
- 高级表格软件
- 以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合
- 是依照某种数据模型组织起来并存放二级存储器中的数据集合
- 常见数据库
MySQL | Oracle | MongoDB |
DB2 | sqlite | SqlServer |
- mysql 介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统(RDBMS)之一。
- mariadb
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
2. 安装mysql并启用
- 安装
dnf search mariadb
:查找数据库
dnf install mariadb-server.x86_64 -y
:安装数据库
- 查看配置文件
rpm -qc mariadb-server
- 启用数据库服务
systemctl enable --now mariadb
3. 软件基本信息
- 启动服务:mariadb.service
- 默认端口号:3306
- 主配置文件 :
/etc/my.cnf.d/mariadb-server.cnf - 数据目录:/var/lib/mysql
(数据目录,当需要重新安装mariab时,需要清理此目录或者备份)
4. 数据库的安全初始化
4.1 关闭数据库开放端口
vim /etc/my.cnf.d/mariadb-server.cnf
:编辑主配置文件
skip-networking=1
#关闭数据库开放端口
systemctl restart mariadb.service
:重启数据库服务netstat -antlupe | grep mysql
:查询数据库端口(此命令查询不到端口
netstat参数 | |||
---|---|---|---|
参数 | 解释 | 参数 | 解释 |
-a | 显示所有选项 (默认不显示LISTEN相关) |
-t | 仅显示tcp选项 |
-u | 仅显示udp选项 | -n | 拒绝显示别名 (能显示数字的全部转化为数字) |
-l | 仅列出有在Listen(监听)的服务状态 | -p | 显示建立相关链接的程序名 |
-r | 显示路由信息、路由表 | -e | 显示扩展信息 |
-s | 按各个协议进行统计 | -c | 每隔固定时间,执行该netstat命令 |
4.2 执行安全初始化脚本
mysql_secure_installation
:初始化mysql -u用户名 -p密码
:登陆数据库(可不明文输入密码)
#登陆数据库方式
mysql -u用户名 -p
mysql -u用户名 -p -e "数据库命令"
mysql -u用户名 -p 数据库名 -e "数据库命令"
5. 数据库基本管理
5.1 数据库查看
SHOW DATABASES;
:显示数据库名称USE 数据库名;
:进入数据库SHOW TABLES;
:显示数据库中的表SELECT * FROM 数据库名.表名;
:查询表中所有数据(已经进入该数据库则可以不加数据库名)SELECT 字段1,字段2 FROM 数据库名.表名;
:查询指定字段(已经进入该数据库则可以不加数据库名)DESC 表名;
:显示表结构
5.2 数据库新建
-
CREATE DATABASE 数据库名;
:新建数据库 -
新建表
USE westos; 进入数据库
CREATE TABLE 表名(
-> 字段 类型 是否为空,
-> Username varchar(10) not null,
-> Password varchar(10) not null
-> );
# '->'不是sql语句的一部分,表示一个新行
# ';'表示指令结束
DESC linux;
:显示表结构`- 插入数据
#给所有字段添加
INSERT INTO 表名 VALUES('值1','值2',...,'值n');
INSERT INTO 表名 VALUES ('值1','值2',...,'值n'),('值1','值2',...,'值n')...;#添加多组值
#给指定字段添加
INSERT INTO 表名 (字段1,字段2) VALUES('值1','值2');
INSERT INTO 表名 (字段1,字段2) VALUES ('值1','值2'),('值1','值2')...;#添加多组值
FLUSH PRIVIEGES;
:刷新数据库
5.3 数据库更改
ALTER TABLE 原表名 RENAME 新表名;
:更改表名称ALTER TABLE 表名 ADD 字段 类型;
:添加字段ALTER TABLE 表名 ADD 字段 类型 AFTER 已有字段;
:添加字段(位置在已有字段之后)UPDATE 表名 SET字段1=‘值1’,字段2=‘值2’ WHERE 字段=‘值’;
:更改数据ALTER TABLE 表名 DROP 字段名;
:删除字段
5.4 数据库删除
DELETE FROM 表名 WHERE 字段=‘值’;
:删除指定数据
#指定多个条件
DELETE FROM 表名 WHERE 字段1='值' AND 字段2='值';
DROP TABLE 数据库名.表名;
:删除表DROP DATABASE 数据库名;
:删除数据库
6. 数据密码管理
6.1 数据库密码更改
mysqladmin -uroot -p password 新密码
6.2 数据库密码破解
systemctl stop mariadb.service
:关闭数据库服务mysqld_safe --skip-grant-tables &
:启动数据库时跳过数据库的授权表mysql
:登陆
#修改密码(rhel8中)
UPDATE mysql.user SET authentication_string=password('新密码') WHERE User='root';
#修改密码(rhel7中)
UPDATE mysql.user Password=password('新密码') WHERE User='root';
#########
password()是为了防止密码裸漏,进行加密处理
ps aux | grep mysql
:查询mysql进程kill -9 进程号
:关闭mysql进程systemctl enable --now mariadb
:开启服务
7. 用户授权
7.1 创建本地用户
CREATE USER 用户名@localhost identified by ‘该用户密码’;
:只能用lcalhost登陆SELECT User FROM mysql.user;
:查看用户
7.2 管理用户权限
SHOW GRANTS FOR 用户名@localhost;
:查看用户权限GRANT 权限1,权限2 ON 数据库名.* TO 用户名@localhost;
:赋予用户权限(* 代表该库下所有表)REVOKE 权限1,权限2 ON 数据库名.* FROM 用户名@localhost;
:收回用户权限
7.3 删除用户
DROP USER 用户名@localhost;
:删除用户
7.4 创建网络用户(不建议创建)
CREATE USER 用户名@’%’ identified by ‘该用户密码’;
:创建用户(可以通过网络或localhost登陆)
#直接执行创建命令
mysql -uroot -p -e "CREATE USER 用户名@'%' identified by '该用户密码';"
vim /etc/my.cnf.d/mariadb-server.cnf
:修改主配置文件(打开数据库开放端口)
#skip-networking=1 注释掉(打开端口)
systemctl restart mariadb.service
:重启服务netstat -antlupe | grep mysql
:查询数据库端口mysql -u用户名 -p密码 -h访问的数据库主机IP
:远程或本地访问数据库
- 在node1中创建网络用户zynet
- 在node2中访问node1数据库
8. 数据库备份
8.1 数据库备份方法
mysqldump -u用户名 -p --all-databases
:备份所有数据mysqldump -u用户名t -p --all-databases --no-data
:备份所有数据,但是不备份数据内容(只有数据库名 表和字段)mysqldump -u用户名t -p 数据库名 > /mnt/数据库名.sql
:备份数据到指定位置
8.2 恢复数据方法1
mysql -u root -p -e “CREATE DATABASE westos;”
:创建数据库mysql -u root -p westos < /mnt/westos.sql
:恢复数据到指定数据库中
8.2 恢复数据方法2
vim /mnt/westos.sql
:修改备份数据库文件(添加创建并进入操作数据库语句)
CREATE DATABASE westos;
USE westos;
mysql -u root -p < /mnt/westos.sql
:恢复数据
9. Phpmyadmin 图形数据库管理方式 web
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。
9.1. 安装
dnf install httpd -y
:安装Apachednf install php -y
:安装phpdnf install php-mysqlnd.x86_64 -y
:安装php内置mysql连接驱动- 下载phpMyAdmin到默认发布目录/var/www/html/
9.2 配置
tar jxf /var/www/html/phpMyAdmin-3.4.0-all-languages.tar.bz2
:解压缩cd /var/www/html/
:进入该目录
mv phpMyAdmin-3.4.0-all-languages myadmin
:重命名cd myadmin/
:进入该目录
cp config.sample.inc.php config.inc.php
:复制模板文件systemctl enable --now httpd
:打开httpd服务
systemctl restart httpd
:重启httpd服务
9.3 访问
firefox访问http://192.168.43.101/myadmin/
10. 重装本地数据库
systemctl stop mariadb
:关闭数据库服务rm -fr /var/lib/mysql/
:删除数据目录dnf reinstall mariadb-server.x86_64 -y
:重装数据库