Linux-一站式学会MySQL下载、安装、配置及基础使用方法(一看就会超详细版)

在从事大数据相关工作或学习时,Hadoop都是其中一个必不可少的难点。hive正是其生态系统中的重要组件,而在Hive的配置中,MySQL常常作为元数据库的角色出现。Hive的元数据默认是存储在微型数据库Derby中,但由于Derby不支持多个客户端同时访问,所以在生产环境中,通常会选择将Hive的元数据存储到MySQL中,正是这样Hive可以充分利用MySQL的特性和优势,实现更高效、更灵活的数据处理。

文章较长,附目录,此次安装是在VM虚拟环境下进行。文章第一节主要是介绍MySQL,只需安装配置的朋友可以直接跳到文章第二节。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

注:本次案例是在基于Hadoop配置完成的情况下搭建的,需要的朋友可以查看我前面的文章学习搭建

Hadoop集群搭建icon-default.png?t=N7T8https://blog.csdn.net/qq_49513817/article/details/136525399?spm=1001.2014.3001.5501

目录

一、Mysql

1.什么是MySQL

2.MySQL的历史

3.MySQL的特点

4.MySQL的整体结构

5.MySQL的工作原理

二、MySQL的下载与安装

MySQL的下载

MySQL的安装配置

三、MySQL的基础使用方法

拓展-MySQL与Derby的区别


一、Mysql

1.什么是MySQL

 MySQL官网

MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。它使用SQL(结构化查询语言)进行数据库管理,具有高效、稳定的数据存储和检索功能。它支持多种存储引擎,其中最常用的是InnoDB,它支持事务处理和行级锁定等功能,能够提供更高的并发性能和更好的数据安全性。同时,MySQL还提供了多种索引类型,如B-Tree索引、哈希索引、全文索引等,以满足不同场景下的查询需求。MySQL的数据库和表结构使得数据组织和存储变得有序,每个数据库可以包含多个表,每个表由行和列组成,用于存储和管理各种类型的数据。通过执行SQL语句,用户可以对数据进行增删改查操作,实现数据的灵活处理。此外,MySQL还具有优秀的性能和可扩展性,适用于各种规模的应用场景。它支持大量的数据并发访问,并提供了ACID事务支持,确保数据的完整性和一致性。同时,MySQL也提供了一系列查询优化技术,以提升数据处理速度和性能。MySQL还具有良好的安全性与权限管理功能,用户可以创建和管理不同的用户账户,并为他们分配相应的权限,确保数据的安全访问和控制。

2.MySQL的历史

MySQL的历史

MySQL的历史可以追溯到1985年,当时瑞典的几位开发者(以David Axmark为首)成立了一家公司,这是MySQL AB的前身。最初,他们设计了一个利用索引顺序存取数据的方法,即ISAM(Indexed Sequential Access Method)存储引擎核心算法的前身,并结合mSQL来实现应用需求。在系统使用过程中,随着数据量越来越大,ISAM和mSQL的组合逐渐不堪重负,于是他们决定自己重写SQL支持。

1990年,TcX公司的客户开始要求为其API提供SQL支持,这促使了MySQL的诞生。在1994年,瑞典的Michael Widenius和David Axmark正式创建了MySQL。最初的MySQL是一个小型的SQL数据库,主要用于满足个人和小型应用程序的需求。

1995年,MySQL首次发布,并成为了开源项目。这一举措使得更多的开发者能够参与MySQL的改进和扩展,极大地促进了其快速发展。同年,MySQL AB公司成立。

1996年,MySQL 1.0发布,虽然这只是一个内部版本,但标志着MySQL开始逐渐走向成熟。在接下来的几年里,MySQL被依次移植到各个平台,其用户群和影响力不断扩大。

到了2000年,MySQL 4.0发布,这个版本带来了更多的功能,如存储过程、触发器、视图和外键支持。同年,MySQL不仅公布了其源代码,还采用了GPL(GNU General Public License)许可协议,正式进入开源世界。

2010年至今,尽管MySQL被Oracle收购,但MySQL社区版本仍然存在,继续得到开源社区的支持和开发。MySQL 5.5以及之后的版本继续引入性能和功能方面的改进,包括InnoDB存储引擎的改进、复制和集群支持等。

总的来说,MySQL的历史是一个不断创新和发展的过程,从一个小型的SQL数据库逐渐发展成为全球最流行的数据库之一。它凭借出色的性能、稳定性和易用性,赢得了众多企业和开发者的青睐,成为商业应用领域的重要组成部分。

3.MySQL的特点

  • 开源    MySQL是开源的,这意味着任何人都可以获取其源代码,并根据需求进行修改或扩展。这种开放性不仅降低了使用成本,还促进了广泛的社区支持和开发。
  • 大量    MySQL支持大型系统的数据库,能够处理拥有上千万条记录的大型数据库。这使得它成为大型企业和复杂应用的首选数据库解决方案。
  • 多线程    MySQL支持多线程,能够充分利用CPU资源,提供出色的性能。它还使用标准的SQL数据语言形式,使得数据操作和管理变得简单而统一。
  • 跨平台    跨线程是MySQL的另一个重要特点,它支持多种操作系统,如Windows、Mac OS、Linux等,这使得开发者能够在不同的环境中灵活部署和使用MySQL。
  • 多语言    还支持多种语言,包括常见的编码如中文的GB 2312、BIG5等,都可以用作数据表名和数据列名。这为多语言环境下的数据存储和处理提供了便利。
  • 存储量大    在数据存储方面,MySQL具有较大的存储容量,32位系统表文件最大可支持4GB,64位系统表文件最大可支持8TB。这满足了各种规模的数据存储需求。
  • 多接口    另外,MySQL提供了丰富的API接口,支持多种编程语言,如C、C++、Python、Java等。这使得开发者能够使用自己熟悉的编程语言与MySQL进行交互,提高了开发效率。
  • 高性能    在性能方面,MySQL具有卓越的稳定性和服务质量,很少出现异常宕机。其优秀的性能表现和口碑效应使得越来越多的企业选择使用MySQL作为他们的数据库系统。
  • 引擎多样    此外,MySQL还支持多种存储引擎,如MyISAM、InnoDB等,每种存储引擎都有其特定的优点和适用场景,用户可以根据需求选择合适的存储引擎。
  • 技术齐全    最后,MySQL还提供了丰富的查询优化技术和工具,如查询缓存、索引优化等,帮助用户提高查询性能和数据访问速度。

4.MySQL的整体结构

MySQL的体系结构 

  • 连接池(Connection Pool):负责用户连接的维护和管理,以提升访问性能。同时,它还负责角色权限的认证。
  • SQL接口:接收用户的SQL命令,并返回SQL执行后的结果。它是用户与MySQL数据库进行交互的接口。
  • 解析器:对接收到的SQL命令进行解析,包括语法验证,并将解析后的命令转换为内部的数据结构(如解析树)。
  • 优化器:对用户书写的SQL进行优化,例如选择最佳的索引、确定表的读取顺序等,以提高查询性能。
  • 缓存:MySQL使用多种缓存机制来加速数据的访问和处理。这些缓存包括表缓存、记录缓存、权限缓存和键缓存等。
  • 存储引擎层:MySQL采用插件式的存储引擎架构,开发者可以根据需要选择合适的存储引擎,也可以定制化开发存储引擎。存储引擎是基于表的,而不是整个数据库。目前最常用的存储引擎是InnoDB,它提供了高性能和自动崩溃恢复的特性。
  • 文件系统层:MySQL中的数据最终会持久化到文件系统中。这一层负责管理物理文件的存储和检索。

5.MySQL的工作原理

MySQL工作流程图

  • 连接管理:客户端通过TCP/IP建立与MySQL服务器的连接。服务器接收到连接请求后,会验证客户端的身份,检查用户名和密码是否正确,并为该连接分配一个线程。
  • SQL接口:SQL接口是MySQL的核心组件之一,它接受用户的SQL命令,并将这些命令传递给后续的组件进行处理。当用户执行SQL查询时,这些查询首先会到达SQL接口。
  • 解析与优化:在SQL接口之后,解析器会接收SQL命令并进行验证和解析。它会检查SQL语句的语法是否正确,并将其转化为内部的数据结构。接着,优化器会基于这个数据结构生成多种可能的执行计划,并选择其中最优化的方案来执行查询,以尽快返回结果。
  • 存储引擎访问:MySQL支持多种存储引擎,如InnoDB、MyISAM等。每种存储引擎都有其特定的文件访问机制。在确定了执行计划后,MySQL会根据所选的存储引擎来执行实际的数据访问操作。
  • 事务处理(如适用):对于支持事务的存储引擎(如InnoDB),MySQL还可以处理事务。事务是一组相关的操作,它们要么全部成功,要么全部失败(原子性)。这确保了数据的完整性和一致性。
  • 返回结果:最后,MySQL将查询结果返回给客户端。这个结果可能是直接从缓存中获取的(如果查询结果已经缓存),也可能是通过执行上述步骤后新生成的。

二、MySQL的下载与安装

MySQL的下载

MySQL官网下载地址icon-default.png?t=N7T8https://downloads.mysql.com/archives/community/

这里我是选择5.7.26的Linux版下载,各位也可以选择自己需要的版本下载。

MySQL的安装配置

我使用的主机、从机名称分别为BigData01,BigData02,BigData03,Hadoop配置版本与上篇文章一致,MySQL版本为5.7.26,解压到opt下,如有主机、从机名称,ip,版本,路径与我不一致的,更改成自己的即可。

卸载原有数据库
rpm -qa | grep mariadb(出来的是哪个版本号下面就哪个,没有改为出现的版本即可)
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

将MySQL上传到Downloads中
安装mysql
cd /opt/
mkdir mysql
cd
tar xvf /root/Downloads/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar -C/opt/mysql
cd /opt/mysql/
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh  mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

检查安装情况
rpm -qa | grep mysql 

修改配置文件
 vim /etc/my.cnf


添加到symbolic-links=0 配置信息的下方
default-storage-engine=innodb
innodb_file_per_table
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8

启动mysql服务
mysqld --initialize --user=mysql
systemctl start mysqld
systemctl status mysqld(出现绿色active (running))

cat /var/log/mysqld.log | grep password(查看默认密码,复制)
mysql -uroot -p(输入拷贝的密码)
set password=password("123456");(修改密码)
update mysql.user set host='%' where user='root';(实现任意主机root用户的远程登录)
flush privileges;(刷新权限表)
quit;(退出,重新登录)
mysql -uroot -p(修改后的密码登录成功即可退出,mysql配置成功)

三、MySQL的基础使用方法

查看数据库SHOW DATABASES;
选择数据库USE database_name;
创建新的数据库CREATE DATABASE my_new_database;
退出MySQLEXIT;
选择数据库USE database_name;
查看表列表SHOW TABLES;
创建表

CREATE TABLE table_name (  
    字段1

    字段2

     ...
);

查看表结构DESCRIBE table_name;
插入数据INSERT INTO table_name (字段1, 字段2,  ...)  
VALUES (value1, value2, ...);
查询数据SELECT 
更新数据UPDATE
删除数据DELETE
修改表结构ALTER TABLE
索引与查询优化EXPLAIN
查看数据库版本SELECT VERSION();
删除用户DROP USER 'username'@'hostname';
查看当前用户SELECT USER();
显示数据库中的表SHOW TABLES FROM database_name;

拓展-MySQL与Derby的区别

  • 起源与用途

    • MySQL是由Oracle公司开发的一种广泛使用的开源关系数据库管理系统(RDBMS)。它支持多种操作系统,如Windows、Mac OS等,并且因其强大的功能和稳定性,常被用于大型项目和高并发的工作负载中。
    • Derby则是由Apache Software Foundations开发的,用Java实现的功能齐全的开源关系数据库管理系统(RDBMS)。它主要被设计为桌面级数据库,因此在某些大型项目的部署方面可能有所限制。
  • 性能与扩展性

    • MySQL在处理大型数据集时表现出色,因为它能够使用更大的块来存储数据,因此可以容纳更大的数据库。此外,MySQL也更适合高并发性能的工作负载。
    • Derby默认情况下将数据存储在内存中,因此可能受到物理内存的限制,对于大型数据集的处理可能不如MySQL高效。
  • 数据类型支持

    • MySQL支持更广泛的数据类型,包括大型对象(BLOB),这使得它特别适合处理音频、图像和视频等内容。
    • Derby在数据类型支持上可能较为有限,不如MySQL那么广泛。
  • 部署与集成

    • MySQL有更广泛的部署选项,支持多种操作系统,并且可以与各种编程语言和框架进行集成。
    • Derby可以嵌入到Java应用程序中,或者作为数据库服务器使用,因此在Java应用中的集成可能更为方便。
  • 存储引擎

    • MySQL的开源性允许第三方基于MySQL骨架开发适合自己业务需求的存储引擎。MySQL提供了多种存储引擎,如InnoDB、MyISAM和Memory等,每种引擎都有其特定的应用场景和优势。
    • Derby在这方面的灵活性可能不如MySQL。

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: MySQL 8.安装配置详细教程: 1. 下载MySQL 8.安装包,可以从官网或者其他可靠的网站下载。 2. 安装MySQL 8.,双击安装包,按照提示进行安装。 3. 配置MySQL 8.,打开MySQL 8.的配置文件my.ini,找到[mysqld],在下面添加以下内容: default_authentication_plugin=mysql_native_password 4. 启动MySQL 8.,打开命令行窗口,输入以下命令: net start mysql 5. 连接MySQL 8.,打开命令行窗口,输入以下命令: mysql -u root -p 6. 创建新用户,输入以下命令: CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码'; 7. 授权新用户,输入以下命令: GRANT ALL PRIVILEGES ON *.* TO '用户名'@'localhost'; 8. 退出MySQL 8.,输入以下命令: exit 以上就是MySQL 8.安装配置详细教程,希望对你有所帮助。 ### 回答2: MySQL是一款流行的关系型数据库管理系统,它可在大多数操作系统中运行,如Linux、Windows和MacOS。MySQL 8.0是MySQL的最新本,它在性能、安全性和可扩展性方面都有显著改进。本文将详细介绍如何在Linux平台上进行MySQL 8.0的安装配置。 1. 安装MySQL 8.0 a. 下载MySQL 8.0的安装使用wget命令下载MySQL 8.0安装包。 ``` $ wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm ``` b. 安装MySQL 8.0的yum源 使用以下命令安装: ``` $ sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm ``` c. 安装MySQL 8.0服务器和客户端 使用以下命令安装: ``` $ sudo yum install mysql-community-server mysql-community-client ``` 2. 启动MySQL 8.0 使用以下命令启动MySQL服务器: ``` $ sudo systemctl start mysqld ``` 若服务器启动失败,可使用以下命令检查错误: ``` $ sudo journalctl -xe ``` 3. 配置MySQL 8.0 a. 修改MySQL默认密码 MySQL 8.0的默认密码不再是空密码,而是一个生成的随机密码。为了能够访问数据库,需要使用该密码进行登录并修改密码。使用以下命令登录MySQL: ``` $ sudo mysql -u root -p ``` 输入MySQL生成的随机密码,进入MySQL命令行后进行修改: ``` mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword'; ``` 其中,newpassword为新的密码。 b. 配置MySQL的远程访问 默认情况下,MySQL只允许本地主机进行访问。若要允许其他主机进行访问,需要进行以下操作: (1) 使用以下命令登录MySQL: ``` $ sudo mysql -u root -p ``` (2) 执行以下命令,创建一个新的MySQL用户: ``` mysql> CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'; ``` 其中,newuser是新的用户名,password是该用户的密码。 (3) 授予该用户远程访问权限: ``` mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%'; ``` (4) 重载MySQL权限表: ``` mysql> FLUSH PRIVILEGES; ``` 完成以上步骤后,即可从其他主机访问MySQL。 4. 确认MySQL 8.0是否已安装成功 使用以下命令登录MySQL: ``` $ mysql -u root -p ``` 输入之前修改的MySQL密码,即可进入MySQL命令行。运行以下命令查看MySQL本: ``` mysql> SELECT VERSION(); ``` 若成功输出MySQL本,则表示MySQL 8.0已经安装成功了。 以上就是MySQL 8.0安装配置详细教程。通过这个教程,你可以在Linux平台上轻松安装配置MySQL 8.0,并让MySQL对你的数据进行管理。 ### 回答3: MySQL是一种流行的关系型数据库管理系统,被广泛用于Web应用程序的开发中。MySQL 8.0是MySQL的最新本,新增了许多新功能和安全性改进。在本文中,我将为您提供MySQL 8.0安装配置详细教程。 第一步:下载MySQL 8.0 首先,您需要在官网上下载MySQL 8.0的安装包,官网地址为: https://dev.mysql.com/downloads/mysql/。 第二步:安装MySQL 8.0 安装MySQL 8.0的过程不难,您只需要按照安装程序中的指示进行即可。安装过程中,您需要为MySQL设置一个root账户的密码,这是数据库管理的最高权限。请不要遗失了这个密码,否则您将无法访问MySQL数据库。 第三步:启动MySQL服务 MySQL安装完成后,默认是未启动的状态。若要使用MySQL,您需要启动它。在Windows系统下,您只需要在服务列表中找到MySQL服务并将其启动即可。在Linux系统下,您可以使用以下命令启动MySQL服务: sudo systemctl start mysqld 在启动MySQL服务期间,可能出现一些错误提示。这些错误通常是由于MySQL配置文件中设置错误引起的。如果您使用默认配置,那么这些错误通常可以通过重新启动MySQL服务来解决。 第四步:配置MySQL MySQL安装完成后,需要进行一些配置才能更好地满足您的需求。以下是一些常用的MySQL配置方法: 1. 修改root账户的密码 在MySQL中,root账户是具有最高权限的账户。为了保护MySQL数据库的安全性,您应该修改root账户的默认密码。要修改root账户的密码,可以使用以下命令: mysql -u root -p ## 输入root账户的密码,进入MySQL shell之后,执行以下命令: ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; 2. 创建新用户并授权 在MySQL中,您可以创建新的账户并授予它们不同的权限。要创建新用户,并为其授予权限,请使用以下命令: CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password'; ## 授予该用户访问test数据库的权限: GRANT ALL PRIVILEGES ON test.* TO 'new_user'@'localhost'; 3. 修改MySQL配置文件 MySQL配置文件是MySQL的核心文件,它记录了所有MySQL的设置和参数。要修改MySQL配置文件,请编辑“my.cnf”文件。在该文件中,您可以修改MySQL的一些参数,如端口号、缓存大小等等。 以上是MySQL 8.0安装配置的一些基本方法,您可以根据需要选择相应的方法MySQL 8.0是一款强大的数据库管理系统,它可以为您的Web应用程序提供高效、可靠的数据管理服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Peng0426.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值