IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Linux进阶(6)--MariaDB数据库 -> 正文阅读

[大数据]Linux进阶(6)--MariaDB数据库

一.数据库的介绍

1. 什么是数据库

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、7更新、删除等操作。

2. 常见数据库

常见的关系型数据库有Mysql,SqlServer,Oracle,DB2,SQLite等。
常见的非关系型数据库有MongoDB,Redis,Memcached 等。

3. MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于 Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。是全球最大的开源数据库软件。

4. MariaDB

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

MariaDB的存储引擎是:基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎。

开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。

二.MariaDB数据库的基本使用

1.MariaDB的基本信息

  • 服务名称: mariadb.service
  • 默认端口号:3306
  • 主配置文件:/etc/my.conf
  • 数据目录: /var/lib/mysql

2.MariaDB的安装与启用

dnf install mariadb-server.x86_64

systemctl enable --now mariadb
# 启动服务后输入"mysql"命令,查看是否可以进入数据库

3.MariaDB的安全初始化

☆关闭数据库开放端口

vim /etc/my.cnf 
[mysqld] 
skip-networking=1 

systemctl restart mariadb 
# 再次查看数据库端口确认关闭
netstat -antlupe | grep mysql

☆执行安全初始还脚本

#Server: 
mysql_secure_installation			#安全初始化脚本

#######################################################################
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

# 输入mysql的root用户密码
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
#######################################################################

# 主要就是设置mysql的root用户密码,其他选项都是一路y即可
# 测试登陆,这个时候直接输"mysql"就不能直接进入数据库了:
mysql -u root -p
[输入刚才设置的密码]

4.MariaDB的基本操作

以下所有操作都是进入MariaDB后,输入的命令(大写字母都是sql语句)

☆查看数据库和库中的表

SHOW DATABASES;				#显示所有数据库
USE mysql;					#进入mysql库 
SHOW TABLES;				#显示目前进入的数据库中所有表

☆新建和删除库和表

CREATE DATABASE testdb;				#新建库
CREATE TABLE testtb(
	username varchar(6) not null, 
	password varchar(30) not null
	); 								#新建表
	
DESC testtb;						#显示表结构

DROP TABLE testtb; 					#删除表
DROP DATABASE testdb;				#删除库

☆更改表的信息

ALTER TABLE testtb RENAME linux; 					#重命名表名
ALTER TABLE linux ADD age varchar(4) AFTER password;#增加表头信息
ALTER TABLE linux DROP age;							#删除某个表头信息

☆ 表中数据的增删改查

# 增加数据
INSERT INTO testtb VALUES ('user1','123');

# 删除数据
DELETE from testtb where username='user2' and password='321';

# 修改数据
UPDATE testtb SET password='666' WHERE username='user2';

# user是mysql库中的user表
SELECT * FROM user;						#查询所有数据 
SELECT Host,User,Password FROM user;	#查询指定字段

三.数据库密码管理

1.修改密码

mysqladmin -u[用户名] -p[旧密码] password [新密码]
#举例:
mysqladmin -uroot -p123 password abc

2.数据库密码破解

# 第一步:关闭数据库
systemctl stop mariadb

# 第二步:启动数据库时跳过数据库授权表
mysqld_safe --skip-grant-tables &

# 第三步:进入表中修改密码
mysql					#此时不需要密码就可以进入数据库
#之前未使用mysladmin更改过密码的话
UPDATE mysql.user set Password=password('321') WHERE User='root';
#之前使用mysladmin更改过密码的话
UPDATE mysql.user set authentication_string=password('321') 
WHERE User='root'; 

# 第四步:刷新数据库
FLUSH PRIVILEGES;

# 第五步:删除mysql的所有进程
killall -9 mysqld

# 第六步:重启mysql 用新密码登陆
systemctl start mariadb

四.用户授权

1.新建和删除用户

# 新建一个"laowang"用户,密码为123.
# localhost表示该用户仅可在数据库安装主机进行登录
CREATE USER laowang@localhost IDENTIFIED BY '123';

# %表示该用户可以通过网络或localhost登陆 
CREATE USER laowang@'%' IDENTIFIED BY '123';


# 删除用户
DROP user laowang@localhost;

2.用户授权

# 给该用户授权
GRANT INSERT,SELECT ON testdb.* TO laowang@localhost; 
# 把testdb数据库中的所有表的"插入""查询"权力授权给laowang用户

# 查看该用户授权
SHOW GRANTS for laowang@localhost; 

# 撤销给该用户的权力
REVOKE SELECT ON testdb.* FROM laowang@localhost; 

五.数据库备份与恢复

1.备份

# 将数据库的所有数据进行备份
mysqldump -uroot -p123 --all-database 

# 仅备份所有的数据库中的表头,不要数据
mysqldump -uroot -p123 --all-database --no-data 

# 备份指定数据库
mysqldump -uroot -p123 testdb > /mnt/testdb.sql 

2.恢复

# 直接把备份文件导入到数据库会提示没有此数据库
mysql -uroot -p123 -e "create database testdb;" #先创建此数据库
mysql -uroot -p123 testdb < /mnt/testdb.sql		#从备份文件导出至数据库

六.数据库可视化管理工具phpmyadmin

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程序一样在网页服务器上执行,但是您可以在任何地方使用这些程序产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。

# 准备工作:
dnf install httpd php php-mysqlnd
systemctl enable --now httpd
systemctl stop firewalld

# 安装phpmyadmin
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
less README 
less Documentation.txt 
cp config.sample.inc.php config.inc.php 
vim config.inc.php 
$cfg['blowfish_secret'] = 'ba17c1ec07d65003';

# 最后在浏览器中输入"IP/mysqladmin"使用此软件
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:57:41  更:2022-03-21 21:02:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:43:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码