Mysql编译安装和yum安装

news2024/11/24 12:21:58

一、msql数据库介绍

1、什么是sql

sql代表结构化查询语言,sql是用于访问数据库的标椎化语言

sql包含三个部分

 DDL数据定义语言包含定义数据库及其对象的语言,例如表,视图,触发器,存储过程等

DML数据操作语言包含允许数据更新和查询数据的语句(这里的查询语言可以分为 DQL)

DCL 数据控制语言允许授予用户权限访问数据库中的特定数据;

2.mysql是什么?

mysql是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下,mysql是最流行的关系型的数据库之一,在web应用方面,MySQL是最好的RDBMS应用软件之一,关系数据库将数据保存在不同的表中,而不是将数据放在一个大仓库,这样就增加了速度并提高数据的灵活性。

MySQL的官方网址: MySQL ,MySQL的社区版本下载地址为: MySQL :: Download MySQL Community Server

3.关系型数据库和非关系型数据库

关系型数据库

基本概念:关系型数据库依据关系模型来创建数据库。

   所谓关系模型就是一对一,一对多,多对多的关系模型,关系模型就是指二维数据表格模     型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。

优点:

1.易于维护:使用的都是表结构,格式一致

2.使用方便:sql语言通用,可用于复杂查询

3.复杂操作:支持sql,可用于一个表以及多个表之间非常复杂的查询

4.学习成本低。

缺点:

1.读写性能差,尤其是海量数据高效率读写

2.固定的表结构,灵活度欠缺

3.高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈

关系型数据库:Oralce Mysql DB2 PostgreSQL SqlServer

非关系型数据库

基本概念:非关系型数据库主要是基于“非关系模型”的数据库(由于关系型太大,所以一般用“非关系型”来表示其他类型的数据库)

优点:

1.格式灵活,存储数据的格式可以是key,value形式,文档形式,图片形式等等

2.速度快:可以使用硬盘或者内存作为载体,而关系型数据只能使用硬盘

3.成本低:数据库部署简单,基本都是开源软件

缺点

1.不提供sql支持,学习和使用成本高;

2.无事务处理

 非关系型数据库:Redis MongDB Memcache

二、yum部署安装MySQL

1.关闭防火墙和selinux

[root@localhost ~]#systemctl stop firewalld && setenforce 0

2.找yum源的rpm安装包

复制链接

3.下载yum源的rpm安装包

[root@localhost ~]# yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm

4.把安装5.7的源打开,关闭安装8.0的源

方法一:(永久关闭)

[root@localhost ~]# vim /etc/yum.repos.d/mysql-community.repo #打开配置文件
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch
enabled=1        #将0改为1,代表打开这个源
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch
enabled=0        #将1改为0,代表关闭这个源
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
       file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

方法二:(永久关闭)

[root@localhost ~]# yum -y install yum-utils
[root@localhost ~]# yum repolist |grep mysql
mysql-connectors-community/x86_64       MySQL Connectors Community           227
mysql-tools-community/x86_64            MySQL Tools Community                100
mysql80-community/x86_64                MySQL 8.0 Community Server           426
[root@localhost ~]# yum-config-manager --disable mysql80-community
[root@localhost ~]# yum-config-manager --enable mysql57-community

方法三:(临时关闭)

[root@localhost ~]#[root@localhost ~]#yum install -y mysql-community-server --enablerepo mysql57-community --disablerepo mysql80-community

5.安装mysql以及必要安装包

[root@localhost ~]# yum -y install mysql-community-server
[root@localhost ~]# yum -y groupinstall "Development Tools"

6.启动mysql

[root@localhost ~]# systemctl start  mysqld

8.从日志中过滤初始密码

[root@localhost ~]# grep "password" /var/log/mysqld.log
2023-09-25T13:06:14.510313Z 1 [Note] A temporary password is generated for root@localhost: Qo9b-0AXzdIt

9.登录数据库

[root@localhost ~]# mysql -p"Qo9b-0AXzdIt"  #用日志中的密码登录
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.43

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

10.更改mysql密码

 (1)mysql外面修改密码

[root@localhost ~]# mysqladmin -p"Qo9b-0AXzdIt" password "123"
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
mysqladmin: unable to change password; error: 'Your password does not satisfy the current policy requirements'  #密码强度不够

[root@localhost ~]# vim /etc/my.cnf #修改配置文件
validate-password=OFF #关闭mysql密码强度策略,生产环境切勿尝试,首次启动不可关闭
[root@localhost ~]# systemctl restart mysqld  #重启mysql
[root@localhost ~]# mysqladmin -p"Qo9b-0AXzdIt" password "123" #再次修改密码
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

(2)mysql里面修改密码

[root@localhost ~]# mysql -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.43 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by "123";

三、源码编译安装mysql

1.安装mysql的依赖包

[root@mysql_source ~]# yum -y groupinstall "Development Tools"
[root@mysql_source ~]# yum -y install ncurses ncurses-devel openssl-devel bison libgcrypt gcc gcc-c++ make cmake

2.下载mysql的压缩包

 [root@mysql_source ~]wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz

3.在系统中添加运行mysqld的用户,自定义的数据库目录及其他目录

[root@mysql_source ~]# groupadd mysql
[root@mysql_source ~]# useradd -M -g mysql -s /sbin/nologin mysql
[root@mysql_source ~]# mkdir -p /usr/local/{data,mysql,log,tmp}
[root@mysql_source ~]# chown -R mysql:mysql /usr/local/{data,mysql,log,tmp}

4.解压并自动化构建系统文件

[root@mysql_source ~]# tar xf mysql-boost-5.7.24.tar.gz
[root@mysql_source ~]# cd mysql-5.7.24
[root@mysql_source mysql-5.7.24]# cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1

参数解释:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
-DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录   错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \     帮助文档 
-DMYSQL_TCP_PORT=3306 \     默认端口
-DMYSQL_UNIX_ADDR=/usr/local/tmp/mysql.sock \  sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \  支持的
-DWITH_READLINE=1 \    上下翻历史命令
-DWITH_SSL=system \    使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1  默认的存储引擎,支持外键

5.编译安装

[root@mysql_source mysql-5.7.24]# make -j 3  #-j 指定cpu的个数,lscpu查看CPU个数
[root@mysql_source mysql-5.7.24]# echo $?    #测试上一步是否正确
0
[root@mysql_source mysql-5.7.24]# make install  #安装

6.初始化MySQL

   (1)提升mysql命令为系统级别命令

[root@mysql_source ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin'>>/etc/profile
[root@mysql_source ~]# source /etc/profile  #重新加载系统环境变量文件/etc/profile,以便使修改后的环境变量生效

     (2)拷贝默认文件至/etc/my.cnf中

[root@mysql_source mysql]# chown -R mysql.mysql /usr/local/mysql #修改属主和属组
[root@mysql_source ~]# cd /usr/local/mysql/mysql-test/include 
[root@mysql_source include]# cp /etc/{my.cnf,my.cnf.bak}  #拷贝文件
[root@mysql_source include]# vim /etc/my.cnf  #修改配置文件
[mysqld]
basedir = /usr/local/mysql                    #安装目录
datadir = /usr/local/data					 #数据存放目录
tmpdir = /usr/local/tmp						 #/tmp缓存目录
socket = /usr/local/tmp/mysql.sock			 #指定socket文件的位置
pid_file = /usr/local/tmp/mysqld.pid			 #指定pid文件的位置
log_error = /usr/local/log/mysql_error.log	 #错误日志的位置
slow_query_log_file = /usr/local/log/slow_warn.log  #慢日志查询

server_id = 1						#server-id=??
user = mysql						#指定用户
port = 3306							#指定端口
bind-address = 0.0.0.0				#监听地址(允许所以ip访问)
character-set-server = utf8			#字符集
default_storage_engine = InnoDB		#引擎

(3)执行数据库服务初始化操作

[root@mysql_source ~]# cd /usr/local/mysql
[root@mysql-server mysql]# mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql' 
    (4)启动mysqld服务
[root@mysql_source mysql]# mysqld_safe --defaults-file=/etc/my.cnf & #启动进程并把它挂在后台运行
[1] 25705
2019-8-18T09:19:35.334751Z mysqld_safe Logging to '/usr/local/log/mysql_error.log'.
2019-8-18T09:19:35.379829Z mysqld_safe Starting mysqld daemon with databases from /usr/local/data

   (5)配置mysqld的服务管理工具(便与启动)

[root@mysql_source mysql]# cd /usr/local/mysql/support-files
[root@mysql_source support-files]# cp mysql.server /etc/init.d/mysqld #拷贝启动脚本到/etc/init.d/目录下,并改名mysqld
[root@mysql_source support-files]# systemctl daemon-reload #重新加载系统服务
[root@mysql_source support-files]# pkill mysqld  #关闭之前启动的mysql
[root@mysql_source support-files]# systemctl start mysqld #用systemctl的方式启动mysqld
[root@mysql_source support-files]# systemctl enable mysqld #设置开机自启动

7.登录mysql

[root@mysql_source mysql]# grep "password" /usr/local/log/mysql_error.log   #过滤数据库的初始密码
2019-8-18T09:18:34.214401Z 1 [Note] A temporary password is generated for root@localhost: ejhszb2:m3wJ
[root@localhost ~]#mysql  -p"ejhszb2:m3wJ" #登录mysql 
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.24 Source distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by "123"; #更改密码,方法一
Query OK, 0 rows affected (0.00 sec)

更改密码 方法二:
[root@mysql_source ~]# mysqladmin -p'old_passwd' password "new_passwd"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows 修改hosts映射,可以ping通,但是无法通过http url 路径访问,出现 500 Internal Privoxy Error

问题描述 今天在学习nginx时,想在hosts配置一个nginx的域名映射,但是发现访问nginx服务的ip时可以访问通,在dos命令窗口ping配置的域名映射也可以ping通,但是一旦在浏览器通过http请求访问配置的hosts域名映射时却出现 500 Inter…

学习:原码-反码-补码

文章目录 前提知识原码详解反码补码 二进制负数的运算 前提知识 正数不需要进行原码反码补码一说,正数就是正数,我们原码反码补码是为了针对负数 (按道理来说其实根本不存在什么码,只有二进制机器码,不过是为了方便计…

【Java 基础篇】Java 实现模拟斗地主游戏

欢迎阅读本篇博客,在这篇博客中,我们将详细讲解如何使用Java编写一个简单的模拟斗地主游戏。这个项目将帮助您了解Java编程中的一些基本概念,如面向对象编程、集合框架的使用、随机数生成等。 引言 斗地主是一种非常受欢迎的纸牌游戏&#…

单日 5000 亿行 / 900G 数据接入,TDengine 3.0 在中国地震台网中心的大型应用

小T导读:为满足地震预警数据存储、检索和处理的建设与集成需求,以及响应国家国产软件自主可控的号召,中国地震台网中心决定选用国产数据库 TDengine 来存储和处理地震波形数据。本文将针对 TDengine 3.0 在地震领域的应用展开详细讲解。 关于…

计算机竞赛 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 *…

[Linux入门]---进程状态

文章目录 1.进程主要状态进程运行状态进程阻塞状态进程的挂起状态 2.Linux进程状态Linux进程内核源代码①R运行状态②S睡眠状态③D磁盘休眠状态T停止状态④X死亡状态⑤Z僵尸状态⑥孤儿进程 3.总结 1.进程主要状态 进程运行状态 ①内存中有一个运行队列,其中有两个指…

ElementUI实现登录注册啊,axios全局配置,CORS跨域

一,项目搭建 认识ElementUI ElementUI是一个基于Vue.js 2.0的桌面端组件库,它提供了一套丰富的UI组件,包括表格、表单、弹框、按钮、菜单等常用组件,具备易用、美观、高效、灵活等优势,能够极大的提高Web应用的开发效…

今天聊一聊高性能系统架构设计是什么样的

Java全能学习面试指南:https://javaxiaobear.cn 今天聊一聊大家常听到的高性能系统架构。 高性能系统架构,主要包括两部分内容,性能测试与性能优化。性能优化又可以细分为硬件优化、中间件优化、架构优化及代码优化,知识架构图如…

arcgis搭建离线地图服务WMTS

Arcgis搭建离线地图服务WMTS 发布时间:2021-03-04 版权: ARCGIS搭建离线地图服务器,进行离线地图二次开发 2. 离线地图服务发布(WMTS服务) (详细教程:卫星地图_高清卫星地图_地图编辑_离线地…

Python爬虫实战:根据关键字爬取某度图片批量下载到本地

本文主要介绍如何使用Python爬虫根据关键字爬取某度图片批量下载到本地,并且加入代理IP的使用,绕过反爬措施,提高程序的可用性和稳定性。文章包含了代码实现和详细解释,适合于初学者学习。 目录 前言 准备工作 Requests库 Bea…

微信小程序,动态设置三级联动, 省市区街道

1.第一步 传parentId0 查询省份 2.第二步 选择省份,传pathId选择省份的pathId, 不传parentId,会查询出 市/县数据 3.第三步 根据选择县的parentId 查询街道数据,传parentId选择的县id 4.选择结果回显 显示所选择的 path 以/分割 取最后一级<van-dropdown-menu…

零基础教程:Yolov5模型改进-添加13种注意力机制

1.准备工作 先给出13种注意力机制的下载地址&#xff1a; https://github.com/z1069614715/objectdetection_script 2.加入注意力机制 1.以添加SimAM注意力机制为例&#xff08;不需要接收通道数的注意力机制&#xff09; 1.在models文件下新建py文件&#xff0c;取名叫Sim…

数据链路层协议

文章目录 数据链路层协议0. 数据链路层解决的问题1. 以太网协议(1) 认识以太网(2) 以太网帧格式<1> 两个核心问题 (3) 认识MAC地址(4) 局域网通信原理(5) MTU<1> 认识MTU<2> MTU对IP协议的影响<3> MTU对UDP协议的影响<4> MTU对TCP协议的影响<…

R语言中更改R包安装路径

看到这些包下载到我的C盘&#xff0c;我蛮不爽的&#xff1a; 所以决定毫不犹豫的改到D盘&#xff1a; 首先&#xff0c;我们需要在RStudio中新建一个初始启动文件&#xff1a; file.edit(~/.Rprofile) 然后去你喜欢的环境新建一个文件夹存放安装的包的位置&#xff0c;我喜欢…

第三章 图标辅助元素的定制

第三章 图标辅助元素的定制 1.认识图表常用的辅助元素 ​ 图表的辅助元素是指除了根据数据绘制的图形之外的元素&#xff0c;常用的辅助元素包括坐标轴、标题、图例、网格、参考线、参考区域、注释文本和表格&#xff0c;它们都可以对图形进行补充说明。 ​ 上图中图表常用辅…

混合Rollup:探秘 Metis、Fraxchain、Aztec、Miden和Ola

1. 引言 混合Rollup为新的以太坊L2扩容方案&#xff0c;其分为2大类&#xff1a; 将乐观与ZK技术结合的混合Rollup同时支持公开智能合约 和 私人智能合约 的混合Rollup 本文将重点关注Metis、Fraxchain、Aztec、Miden和Ola这五大项目。 2. 何为混合Rollup&#xff1f; 混合…

VMware Aria 曝光“关键”身份验证漏洞,6.x 版本均受影响

导读近日消息&#xff0c;VMware Aria Operations for Networks 近日曝光了一个高危的身份验证漏洞&#xff0c;远程攻击者可以绕过 SSH 身份认证&#xff0c;访问专用终端。 VMware Aria 是一款用于管理和监控虚拟化环境和混合云的套件&#xff0c;支持 IT 自动化、日志管理、…

ROS2 从头开始:第 7/8回 - 使用 QoS 配置在 ROS 2 中实现可靠通信

一、说明 在机器人操作系统 (ROS) 2 系统中,服务质量 (QoS) 用于指定各种策略,这些策略确定如何通过 ROS 2 主题或服务传输和接收消息。QoS 策略允许您优化 ROS 2 系统中节点之间通信的性能和可靠性。这些设置可用于调整 DDS 系统的性能和行为,以满足应用程序的特定需求…

Ubuntu 安装Nacos

1、官网下载最新版nacos https://github.com/alibaba/nacos/releases 本人环境JDK8&#xff0c;Maven3.6.3&#xff0c;启动Nacos2.2.1启动失败&#xff0c;故切换到2.1.0启动成功 2、放到服务器目录下&#xff0c;我的在/home/xxx/apps下 3、解压 $ tar -zxvf nacos-serve…

人机逻辑中的家族相似性与非家族相似性

维特根斯坦的家族相似性理论是他在《哲学研究》中提出的一个重要概念。他认为&#xff0c;语言游戏是一种人们使用语言的方式&#xff0c;不同的语言游戏之间可能存在相似性&#xff0c;就像一个家族的成员之间存在相似性一样。维特根斯坦认为&#xff0c;相似性不是通过一个共…