数据库架构师之道:MySQL安装与系统整合指南

目录

MySQL数据库安装(centos)

版本选择

企业版

社区版

选哪个

MySQL特点

MySQL服务端-客户端

mysql下载选择

软件包解释

安装MySQL的方式

rpm包安装

yum方式安装

源码编译安装★

具体的编译安装步骤★★

环境准备

free -m命令

cat /proc/cpuinfom命令

top命令

cat /etc/redhat-release命令

编译前的依赖安装

获取mysql的源代码

解压缩,安装mysql

执行cmake,生成makefile,用于编译安装

make安装

验证mysql的安装

创建软链接

mysql数据初始化操作

vim安装

net-tools安装

准备启动mysql

启动前准备

启动成功!

验证启动

登录mysql据库

mysql安全配置


MySQL数据库安装(centos)

版本选择

企业版

MySQL企业版由MySQL AB公司内部专门的人员负责开发及维护,但同时也会吸纳社区人员编写的优秀代码及算法,并且由他们严格按照软件测试流程对这些采纳的代码进行测试,确定没有问题之后才会进行发布。简单地说,MySQL企业版是由MySQL公司内部发布的,它参考了社区版的先进代码功能和算法,是MySQL公司的赢利产品,需要付费才能使用及提供服务支持,稳定性和可靠性无疑都是最好的,当然了,企业腰包得够鼓才能买得起。某知名分类门户网站2008年就购买过MySQL企业版,价格不比那些闭源的商业数据库便宜,也是大几十万。

社区版

MySQL社区版则是由分散在世界各地的MySQL开发者、爱好者以及用户参与开发与测试的,包括软件代码的管理、测试工作,也是他们在负责。社区也会设立BUG汇报机制,收集用户在使用过程中遇到的BUG情况,相比于企业版,社区版的开发及测试环境没有那么严格。

选哪个

mysql是成熟产品,企业版和社区版在性能方面区别不大,对于我们学习而言,社区版即可。

它们的区别可以如下了解

  • 企业版对代码的管理、测试更严格、稳定性更好。

  • 企业版不遵循GPL开源协议,而社区版遵循,可以免费用.。

  • 企业版可以购买额外的收费服务,如7*24的技术支持,有钱任性。

  • 社区版的安全性,稳定性,无法像企业版有及时的维护、技术支持。

MySQL特点

支持多种操作系统,Windows、MacOS、Lnux等支持多种语言API,如C、C++、Pvthon、PHP、Java等

支持多线程、充分利用硬件资源 支持多种存储引擎

mysql就是一个基于socket编写的C/S架构的软件

客户端软件 自带:如mysql命令,mysqldump命令等 python模块:如pymysqlmysql

MySQL服务端-客户端

先看下什么是B/S和C/S架构。

B/S是Browser/Server指浏览器和服务器端,在客户机不需要装软件,只需要装一个浏览器。

C/S是Client/Server指客户端和服务器,在客户机端必须装客户端软件及相应环境后,才能访问服务器。

MySQL是基于客户端-服务端的运行模式数据库,服务端 负责数据处理,运行在数据库服务器上。

用户通过发送增删改查等请求,发送给 客户端软件,然后通过网络提交请求给 服务端 ,服务端接收到请求,再进行处理,然后返回。

服务端、客户端可以在不同的机器上,也可以在一台机器上。

这种服务端,客户端,就在生活里很常见,如打游戏时的登录,QQ、微信的登录,MySQL也是一个登录的过程。

mysql下载选择

了解数据库后,我们可以下载mysql软件了

MySQL :: Download MySQL Community Server (Archived Versions)

我们等会需要用的是这个安装包:

https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.40.tar.gz

软件包解释

mysql-5.6.45.tar.gz
​
5 是主版本号
6 是发行级别,主版本号和发行级别组合,构成发行序列号
45 表示在此发行系列的一个版本,随着新版本发布,进行递增
​
例如
mysq1-5.6.46.tar.gz
mysql-5.6.47.tar.gz
每次更新后,最后一个数字会递增
如果功能变化较大,字符串的第二个数字会递增,也就是如5.7
如果软件格式大改动,第一个数字,主版本号会变化

企业生产场景下,数据库是重中之重,因此选择MySQL数据库一定要慎重。

下面是给出的一些选择建议。

1)一定要选稳定版版本,即择开源的社区版的稳定版。
​
2)产品线选择,建议选择第二条产品线中的5.5或5.6版本。目前互联网公司
主流版本是5.5和5.6。
​
3)选择MySQL数据库至少发布半年以上的稳定版本。
​
4)要尽可能选择前后几个月没有大的BUG修复的版本,而不是大量修复BUG的集中版本。
​
5)最好选择向后较长时间没有更新发布的版本。
​
6)要考虑开发人员开发程序使用的版本是否兼容你所选的版本。
​
7)首先作为内部开发测试数据库环境,测试运行几个月的时间。
​
8)优先对企业非核心业务采用新的数据库稳定版本软件。

安装MySQL的方式

方式有哪些

rpm包安装

rpm安装必须要提前准备好官网、第三方源提供好的rpm软件包,且无法满足定制化需求、编译参数、修改路径、依赖冲突问题,所以不建议使用。

yum方式安装

这是最方便的,yum自动去源中下载相关rpm包

yum install mariadb-server mariadb -y

systemctl start mariadb

源码编译安装★

源代码编译三部曲

1.获取mysql代码源码包,解压缩,源码目录下有一个makefile

2.进入mysql的源码目录下,执行make指令,自动读取makefile

3.在make编译完成之后,执行make install,安装mysql到指定位置

具体的编译安装步骤★★
环境准备
  • Vmware,设置内存大于等于4G,linux的配置,cpu也至少给2核以上

free -m命令
[root@srlua001 opt]# free -m

cat /proc/cpuinfom命令
[root@srlua001 opt]# cat /proc/cpuinfo

processor 0 - 3 说明有4个cpu

top命令
[root@srlua001 opt]# top

执行后按1,查看cpu

  • 编译安装过程中,不得出现error关键字

cat /etc/redhat-release命令

查看操作系统版本

[root@srlua001 opt]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
编译前的依赖安装
#安装命令
[root@srlua001 opt]#yum install ncurses-devel libaio-devel gcc make cmake -y

创建mysq1用户,用于授权目录

获取mysql的源代码

下载链接:

https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.40.tar.gz

使用wget命令下载

wget  https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.40.tar.gz

如果没有wget命令,则先下载wget

yum install wget

解压缩,安装mysql
[root@srlua001 tools]# tar -zxvf mysql-5.6.40.tar.gz

cd 进入mysql-5.6.40

执行cmake,生成makefile,用于编译安装
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \
-DMYSOL_DATADIR=/application/mysql-5.6.40/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

cmake编译参数设置完毕之后,就会自动生成makefile,可以执行

make

make install

make安装
[root@srlua001 tools]#make

下载至100%

[root@srlua001 tools]#make && make install

当cmake,make,make install 成功的依次执行完毕后,看到如下内容,才表明正确

验证mysql的安装

能执行如下操作就算是安装成功结束了!!

创建软链接

mysql数据初始化操作

执行如下初始化命令

[root@srlua001 mysql-5.6.40]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql

以及看到如下的数据目录,表示mysql初始化正确

vim安装

yum install vim -y

net-tools安装

yum install net-tools -y

准备启动mysql

就得配置mysql的启动脚本

使用mysql初始化自动生成的管理脚本

准备启动mysql

提前准备好mysql的配置文件 my.cnf

启动前准备

在/application/mysql下创建tmp文件夹

1.默认情况下会出现这种错误

2.发现这里还是没有启动成功,是因为权限的问题

避免权限问题,把我们所有目录与子目录的属主与属组换成mysql

[root@srlua001 mysql]# chown -R mysql.mysql /application/mysql/

启动成功!

验证启动

[root@srlua001 mysql]# netstat  -tunlp|grep mysql

登录mysql据库

属于mysql服务端mysql-server已经正确启动了

就得用客户端去连接mysql,进行数据的增删改查

使用mysql命令连接

mysql -uroot -p

bash没找到mysql -uroot -p命令是因为环境变量里没有,所有我们要去把mysql路径写入PATH中

使路径生效

source /etc/profile

由于没有设置密码,不安全

mysql安全配置

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/393686.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

输入捕获模式测频率PWM输入模式(PWMI)测占空比

一、概念介绍 输出比较: 比较电路输入的CNT、CCR大小关系 ,在通道引脚输出高低电平 二、*频率知识、测量方法补充 * N/fc得到标准频率的时长,也就是待测频率的周期 测频法代码实现:修改对射式红外传感器计次(上升沿…

IO进程线程day1作业

1、使用fgets统计给定文件行数 代码&#xff1a; #include<stdio.h> #include<string.h> #include<stdlib.h> int main(int argc, const char *argv[]) {if(argc ! 2){printf("inputs file error\n");printf("usage:./a.out filename\n&quo…

【plt.bar绘制条形图or柱状图】:从入门到精通,只需一篇文章!【Matplotlib可视化】

【&#x1f4ca;plt.bar绘制条形图】&#xff1a;从入门到精通&#xff0c;只需一篇文章&#xff01;【Matplotlib】 利用Matplotlib进行数据可视化示例 &#x1f335;文章目录&#x1f335; &#x1f50d; 一、初识plt.bar&#xff1a;条形图的基本概念&#x1f4a1; 二、plt.…

6.s081 学习实验记录(六)copy on write fork

文章目录 实现COW一、问题二、注意三、实现COW四、实验结果 实现COW 一、问题 准备&#xff1a;切换到 cow 分支 目前 xv6 的 fork 系统调用创建的子进程会赋值父进程所有的用户态内存&#xff0c;如果父进程比较大&#xff0c;那么这个复制过程会很耗时&#xff0c;而且一般…

java根据前端所要格式返回树形3级层级数据

一、业务分析&#xff0c;根据前端需求返回如下数据格式 二、后端设计数据类型VO /*** author TTc* version 1.0* date 2024/2/15 16:47*/ Data AllArgsConstructor NoArgsConstructor public class Catalog2Vo {/*** 一级父分类的 id*/private String catalog1Id;/*** 三级子…

ForkJoin 的使用以及原理

原理 Fork-Join 是一种并行计算模式&#xff0c;它通常用于解决递归式或者分治式的问题。其原理基于将一个大的任务划分成若干个小任务&#xff0c;然后并行地执行这些小任务&#xff0c;最后将它们的结果合并起来得到最终的结果。 具体来说&#xff0c;Fork-Join 模式包含两个…

RK3399平台开发系列讲解(USB篇)U盘等存储类设备

🚀返回专栏总目录 文章目录 一、什么是U盘等存储类设备二、U盘设备传输数据结构三、U盘识别需要打开的宏沉淀、分享、成长,让自己和他人都能有所收获!😄 📢介绍U盘等存储类设备。 一、什么是U盘等存储类设备 USB Mass Storage Device Class(USB MSC/UMS) USB大容量存…

分享几个丝滑oled代码

最近一段业余时间在捣鼓esp32&#xff0c;发现对于一个搞diy的来说&#xff0c;它的生态&#xff0c;不管是开发环境、氛围还是可玩度都是独一挡的&#xff0c;国内外基于此的扩展真是太多了&#xff0c;找了几个通过按键/旋钮进行0.96寸OLED控制的案例&#xff0c;超级丝滑&am…

芯品荟|吉他屏驱应用介绍

PART ONE 市场简介 - Market Profile - 古典吉他与小提琴、钢琴并列为世界著名三大乐器。 目前&#xff0c;带屏成为吉他产品的新发展趋势。 核心应用 调音器、节拍器、录音器、效果、练习、循环乐段。 特色应用 4.3寸以下TFT屏 分辨率800*480以下 不带音弦按键替代&…

鸿蒙OS跨进程IPC与RPC通信

一、IPC与RPC通信概述 基本概念 IPC&#xff08;Inter-Process Communication&#xff09;与RPC&#xff08;Remote Procedure Call&#xff09;用于实现跨进程通信&#xff0c;不同的是前者使用Binder驱动&#xff0c;用于设备内的跨进程通信&#xff0c;后者使用软总线驱动…

对称密钥的分配、公钥的分配

目录 密钥分配 1 对称密钥的分配 KDC 对会话密钥 KAB 的分配 对称密钥分配协议&#xff1a;Kerberos 2 公钥的分配 认证中心 CA (Certification Authority) 数字证书 (digital certificate) 已签名的 B 的数字证书的产生过程 X.509 数字证书 认证系统 证书链 证书…

智慧农业一体化平台概述

智慧农业是以物联网为基础,以信息化技术为支撑通过对于科研、生产、物流、销售的各个农业生产环节的信息化管理,实现科学指导、高效生产、科学预测、精准销售、数据决策。因此,构建智慧农业一体化平台,完成对于农业科技管理、农业生产过程管理、农产品物流与商贸管理,从而…

记一个js原生 日期 时间 处理 格式化 对象 Intl 方法

具体对应搜搜。听说用空格分开能增加关键词搜到的概率 说起来最近好像越来越懒了

Quartz---基础

1.概述 Quartz是一个完全由Java编写的开源任务调度框架&#xff0c;通过触发器来设置作业定时运行规则&#xff0c;控制作业的运行时间。Quartz框架的主要核心组件包括调度器、触发器和作业。调度器作为作业的总指挥&#xff0c;触发器作为作业的操作者&#xff0c;而作业则为应…

有关光猫、路由器、交换机、网关的理解

前提 在了解计算机网络的过程中&#xff0c;出现了这四个名词&#xff1a;光猫、路由器、交换机、网络。有点模糊&#xff0c;查阅互联网相关资料&#xff0c;进行整理。如有错误&#xff0c;欢迎大家批评指正。 光猫 首先光猫是物理存在的&#xff0c;大家在家里应该都可以…

代码随想录day25--回溯的应用4

LeetCode491.非递减子序列 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;…

AI生图软件:让创意无限飞扬

随着科技的飞速发展&#xff0c;人工智能(AI)已经逐渐渗透到我们的日常生活之中&#xff0c;其中包括图像编辑。AI生图软件就是这样一种应用了AI技术的创新产品&#xff0c;它正在改变着图像编辑的方式&#xff0c;让我们能够以前所未有的方式创作和分享视觉内容。 一、什么是A…

300分钟吃透分布式缓存-01讲:业务数据访问性能太低怎么办?

这节课主要讲缓存的基本思想、缓存的优点、缓存的代价三个部分。 缓存的定义 先来看下缓存的定义。 & 缓存最初的含义&#xff0c;是指用于加速 CPU 数据交换的 RAM&#xff0c;即随机存取存储器&#xff0c;通常这种存储器使用更昂贵但快速的静态 RAM&#xff08;SRAM&…

七、Mybatis缓存

缓存就是内存中的数据&#xff0c;常常来自对数据库查询结果的保存&#xff0c;使用缓存、可以避免频繁的与数据库进行交互&#xff0c;进而提高响应速度一级缓存是sqlSession级别的缓存&#xff0c;在操作数据库时需要构造sqlsession对象&#xff0c;在对象中有一个数据结构&a…

前端技巧之svg精灵图svg-sprite-loader

首先说明精灵图的必要性&#xff0c;其可以让我们只需要向服务器请求一次图片资源&#xff0c;就能加载很多图片&#xff0c;即能够减轻http请求造成的服务器压力。 然后这里要说明的是这个插件是webpack上面的&#xff0c;所以在vue2中比较好用&#xff0c;如果在vue3中&…