Mysql编译安装和yum安装

一、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-2022file:///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-2022file:///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 ~]#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.43Copyright (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)命令行修改密码

[root@localhost ~]# mysqladmin -p"Qo9b-0AXzdIt" password "123" #-p与旧密码之间没有空格,新密码与password之间有空格
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忘记密码后登录并重新设置密码_火腿炒馕的博客-CSDN博客

三、源码编译安装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 distributionCopyright (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.rhkb.cn/news/141635.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch迁移学习训练图像分类

pytorch迁移学习训练图像分类 一、环境配置二、迁移学习关键代码三、完整代码四、结果对比 代码和图片等资源均来源于哔哩哔哩up主:同济子豪兄 讲解视频:Pytorch迁移学习训练自己的图像分类模型 一、环境配置 1,安装所需的包 pip install …

【深度学习实验】卷积神经网络(一):卷积运算及其Pytorch实现(一维卷积:窄卷积、宽卷积、等宽卷积;二维卷积)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 1. 一维卷积 a. 概念 b. 示例 c. 分类 窄卷积(Narrow Convolution) 宽卷积(Wide Convolution) 等宽卷积(Same Convolution&am…

Python开发与应用实验2 | Python基础语法应用

*本文是博主对学校专业课Python各种实验的再整理与详解,除了代码部分和解析部分,一些题目还增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人自己的补充,以方便大家额外学习、参考。 &a…

Python3 如何实现 websocket 服务?

Python 实现 websocket 服务很简单,有很多的三方包可以用,我从网上大概找到三种常用的包:websocket、websockets、Flask-Sockets。 但这些包很多都“年久失修”, 比如 websocket 在 2010 年就不维护了。 而 Flask-Sockets 也在 2…

通信协议:Uart的Verilog实现(上)

1、前言 调制解调器是主机/设备与串行数据通路之间的接口,以串行单比特格式发送和接收数据。它也被称为通用异步收发器(Uart, Universal Asynchronous Receiver/Transmitter),这表明该设备能够接收和发送数据,并且发送和接收单元不同步。 本节…

递归算法讲解,深度理解递归

首先最重要的就是要说明递归思想的作用,在后面学习的高级数据接口,树和图中,都需要用到递归,即深度优先搜索,如果递归掌握的不好,后面的数据结构将举步为艰。 加油 首先看下如何下面两个方法有什么区别&a…

git revert 撤销之前的提交

git revert 用来撤销之前的提交,它会生成一个新的 commit id 。 输入 git revert --help 可以看到帮忙信息。 git revert commitID 不编辑新的 commit 说明 git log 找到需要撤销的 commitID , 然后执行 git revert commitID ,会提示如下…

Allegro如何将丝印文字Change到任意层面操作指导

Allegro如何将丝印文字Change到任意层面操作指导 在用Allegro进行PCB设计的时候,有时需要将丝印文字change到其它层面,如下图 可以看到丝印文字是属于REFDES这个Class的 如果需要把丝印文字change层面,只支持REFDES中以下的层面中来change

入门级制作电子期刊的网站推荐

随着数字化时代的到来,越来越多的人开始尝试制作自己的电子期刊。如果你也是其中的一员,那么这篇文章可以帮助你制作电子期刊。无论是初学者还是有一定经验的制作者,都能快速完成高质量的电子期刊制作 小编经常使用的工具是-----FLBOOK在线制…

95 # express 二级路由的实现

上一节实现了兼容老的路由写法,这一节来实现二级路由 二级路由实现核心: 进入中间件后,让对应的路由系统去进行匹配操作中间件进去匹配需要删除 path,存起来出去时在加上 示意图: 代码实现如下: rout…

ASCII码-对照表

ASCII 1> ASCII 控制字符2> ASCII 显示字符3> 常用ASCII码3.1> 【CR】\r 回车符3.2> 【LF】\n 换行符3.3> 不同操作系统,文件中换行 1> ASCII 控制字符 2> ASCII 显示字符 3> 常用ASCII码 3.1> 【CR】‘\r’ 回车符 CR Carriage Re…

安装OpenSearch

title: “安装opensearch” createTime: 2021-11-30T19:13:4508:00 updateTime: 2021-11-30T19:13:4508:00 draft: false author: “name” tags: [“es”,“安装”] categories: [“OpenSearch”] description: “测试的” 说明 基于Elasticsearch7.10.2 的 opensearch-1.1.…

arcgis搭建离线地图服务WMTS

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

商品秒杀系统整理

1、使用redis缓存商品信息 2、互斥锁解决缓存击穿问题,用缓存空值解决缓存穿透问题。 3、CAS乐观锁解决秒杀超卖的问题 4、使用redission实现一人一单。(分布式锁lua)脚本。 5、使用lua脚本进行秒杀资格判断(将库存和用户下单…

jupyter notebook进不去指定目录怎么办?

首先激活你要使用的虚拟环境 刚开始是现在 (base) C:\Users\lenovo>目录下 直接输入你想进入的盘 (base) C:\Users\lenovo>e:此时再cd (base) C:\Users\lenovo>cd E:\tim\learn_pytorch 就可以进入了 安装3.4.1.15问题 已经有了最新python版本的虚拟环境&#…

【实战项目之个人博客】

目录 项目背景 项目技术栈 项目介绍 项目亮点 项目启动 1.创建SSM(省略) 2.配置项目信息 3.将前端页面加入到项目中 4.初始化数据库 5.创建标准分层的目录 6.创建和编写项目中的公共代码以及常用配置 7.创建和编写业务的Entity、Mapper、…

GE IS220PVIBH1A 336A4940CSP16 电源模块

GE IS220PVIBH1A 336A4940CSP16 电源模块是通用电气(GE)的一种电源模块,用于工业控制和电力系统中,提供电源供应和保护功能。以下是这种类型电源模块的一般特点和功能: 电源供应:GE IS220PVIBH1A 336A4940C…

电脑WIFI突然消失

文章目录 1. 现象2. 解决办法1:重新启用无线网卡设置3. 解决办法2:更新无线网卡驱动4. 解决办法3:释放静电5. 解决办法4:拆机并重新插拔无线网卡 1. 现象 如下图:电脑在使用过程中WIFI消失 设备管理器中的无线网卡驱…

数据通信——应用层(域名系统)

引言 TCP到此就告一段落,这也意味着传输层结束了,紧随其后的就是TCP/IP五层架构的应用层。操作系统、编程语言、用户的可视化界面等等都要通过应用层来体现。应用层和我们息息相关,我们使用电子设备娱乐或办公时,接触到的就是应用…

19.组合模式(Composite)

意图:将对象组成树状结构以表示“部分-整体”的层次结构,使得Client对单个对象和组合对象的使用具有一致性。 上下文:在树型结构的问题中,Client必须以不同的方式处理单个对象和组合对象。能否提供一种封装&#xff0c…