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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL--在CentOS7上安装mysql-8.0.29(glibc和源码) -> 正文阅读

[大数据]MySQL--在CentOS7上安装mysql-8.0.29(glibc和源码)

一.MySQL概述

1.关系型数据库与非关系型数据库

  • 简单来说,关系型数据库,是指采用了二维表格来组织数据的数据库。
    oracle、mysql、DB2、SQL server等都是关系型数据库。

  • 非关系型数据库是通过key/value键值对来维护数据的。
    非关系型数据库有: Redis、MongoDB…

RDBMS(relational database management system),既关系型数据库管理系统。

2.事务

关系型数据库的最大特点就是事务的一致性,所以也在对事物一致性的维护中有很大的开销。

事务由一条或者多条sql语句组成;在事务中的操作,这些sql语句要么都成功执行,要么都不执行,这就是一个事务。

事务特点(ACID)

  • 原子性(Atomicity):
    事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行

  • 一致性(Consistency):
    指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态,不能破坏关系数据的完整性以及业务逻辑上的一致性。

  • 隔离性(Isolation):
    一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

  • 持久性(Durability):
    持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

3.MySQL版本

MySQL是目前应用最广泛的开源关系数据库。MySQL最早是由瑞典的MySQL AB公司开发,该公司在2008年被SUN公司收购,紧接着,SUN公司在2009年被Oracle公司收购,所以MySQL最终就变成了Oracle旗下的产品。

  • 社区版:MySQL Community Edition (GPL)
  • 企业版:MySQL Enterprise Edition(commercial)
    MySQL 企业版包括最全面的 MySQL 高级特性、管理工具和技术支持。
  • 集群版:MySQL Cluster CGE(commercial)

4.MySQL几种安装方式

安装方式优点缺点
rpm安装卸载简单可定制性差
glibc可定制性相比rpm包灵活安装相比rpm包复杂些,需要手动初始化数据库
源码安装可定制性最强,根据需求和功能定制安装麻烦,需要手动初始化数据库

5.mysql安装包获取

第一步:进入mysql官网,点击downloads
请添加图片描述
第二步:点击 MySQL Community(GPL) Downloads
请添加图片描述
第三步:点击mysql社区版下载
请添加图片描述
第四步:glibc版安装包下载
请添加图片描述
第五步:源码包下载
请添加图片描述

二.glibc版本安装

1.安装及初始化流程

参照MySQL官方文档:
https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html

请添加图片描述
安装配置:

选项
安装路径/usr/local/mysql
数据路径/usr/local/mysql/data
端口号3306
错误日志/usr/local/mysql/data/主机名.err

第一步:解压下载好的包(MySQL Server 8.0.12 中压缩算法由 Gzip 改为 XZ;并且通用二进制文件的扩展名从 .tar.gz 更改为 .tar.xz)

tar -Jxf mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.29-linux-glibc2.12-x86_64 /usr/local/mysql

第二步:安装依赖

yum install libaio

第三步:创建mysql用户和用户组

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql.mysql /usr/local/mysql

rm -rf /etc/my.cnf				#清空原有的mariadb配置文件

第四步:建立mysql-files目录

cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files

第五步:初始化

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql
# --initialize		初始化
# --user=mysql		以mysql用户身份初始化数据库,产生文件都是mysql作为拥有者

#运行完毕后,最后一行有root账号的密码
2022-05-14T14:42:40.647560Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: :zr.=4wU6m:I

mysql有没有初始化成功,主要看mysql目录下有没有产生data文件夹且文件夹中至少要有一个mysql的文件夹。

第六步:设置安全加密连接(SSL),数据传输会采用加密形式,适合敏感数据

bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

第七步:启动数据库

cp support-files/mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql
46basedir=/usr/local/mysql
47datadir=/usr/local/mysql/data

service mysql start 

2.安装完成后的配置

#修改root用户密码为123(实验环境)
/usr/local/mysql/bin/mysqladmin -uroot password '123' -p


#将mysql客户端命令添加到环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile
#或做一个软链接
ln -s /usr/local/mysql/bin/mysql /usr/bin


#手工定义MySQL的配置文件
vim /usr/local/mysql/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#选项说明:
#[mysqld]	代表针对服务器端进行配置
#basedir	代表数据库的安装目录
#datadir	代表数据目录,以后专门用于存放数据文件的(核心目录)
#socket		代表套接字文件,专门为客户端与服务器端连接提供一个桥梁
service mysql restart

#安全配置
/usr/local/mysql/bin/mysql_secure_installation

#添加到开机启动项
chkconfig --add mysql
chkconfig mysql on

3.问题记录

  1. mysql的日志会写入data目录下的“主机名.err”文件中,mysql的故障问题一般在这个文件中能找到原因。
  2. 安装前最好将/etc/my.cnf文件删除。数据库在初始化时,首先在自己的安装目录下寻找有没有my.cnf配置文件,如果有,会自动根据里面的配置信息进行初始化。如果找不到,则到/etc目录下寻找my.cnf文件,如果有,依然会按照其内部的配置进行初始化,但是由于/etc目录下的my.cnf文件是mariadb的,这会导致我们的初始化如果按照mariadb的配置,会导致初始化失败。
  3. 确认是否初始化成功,可以确认一下安装目录下有没有data目录。
  4. mysql-files主要用于数据文件的导入与导出(备份与还原),MySQL的备份会产生一个文件。mysql-files就是导入与导出时,所指定的默认目录。

三.源码编译安装

1.安装及初始化流程

参照MySQL官方文档
https://dev.mysql.com/doc/refman/8.0/en/source-installation.html

安装配置:

选项
安装目录/mysql
数据目录/mysql/data
端口号3306
socket文件位置/mysql/mysql.sock
字符集utf8mb4
配置文件/mysql/my.cnf

第一步:解决依赖

#需要cmake3以上,官方下载https://cmake.org/download/,yum源带的版本不够
yum remove cmake				#慎用啊,卸载旧版本
tar -zxf cmake-3.23.1-linux-x86_64.tar.gz
mv cmake-3.23.1-linux-x86_64 /opt/cmake-3.23.1
vim /etc/profile
	export CMAKE_HOME="/opt/cmake-3.23.1"		#添加这两行
	export PATH=$PATH:$CMAKE_HOME/bin
source /etc/profile
cmake --version				#确认一下版本

#需要gcc7.1以上
yum install centos-release-scl			#安装centos-release-scl
yum install devtoolset-11-gcc*			#安装devtoolset
scl enable devtoolset-11 bash			#激活对应的devtoolset
cd /opt/rh/devtoolset-11
source ./enable


yum install bison gcc-c++ ncurses-devel libaio-devel openssl-devel -y
#bison:一般linux7中自带
#gcc-c++:MySQL C API 需要C++或C99编译器进行编译
#ncurses-devel:依赖项
#openssl-devel:用来支持ssl加密连接

第二步:编译安装

#将源码包上传到root用户家目录/root/内
tar -zxf mysql-boost-8.0.29.tar.gz		#解压源码包
cd mysql-8.0.29
mkdir build								#新建一个用于产生编译文件的目录
cd build
vim myconfig.sh
    cmake .. \
    -DCMAKE_INSTALL_PREFIX=/mysql \
    -DMYSQL_DATADIR=/mysql/data \
    -DMYSQL_TCP_PORT=3306 \
    -DMYSQL_UNIX_ADDR=/mysql/mysql.sock \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
    -DWITH_SSL=system \
    -DWITH_BOOST=/root/mysql-8.0.29/boost
chmod +x myconfig.sh						#添加可执行权限
./myconfig.sh								#执行脚本
make -j2 && make install					#编译安装

第三步:创建mysql用户和用户组

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql.mysql /mysql

rm -rf /etc/my.cnf				#清空原有的mariadb配置文件

第四步:建立mysql-files目录

cd /mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files

第五步:初始化

cd /mysql
bin/mysqld --initialize --user=mysql --basedir=/mysql --datadir=/mysql/data
#运行完毕后,最后一行有root账号的密码
2022-05-15T16:46:13.350247Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: a#RZ*9?tdxs*

第六步:设置安全加密连接(SSL),数据传输会采用加密形式,适合敏感数据

bin/mysql_ssl_rsa_setup --datadir=/mysql/data

第七步:启动数据库

cp support-files/mysql.server /etc/init.d/mysql
#源码编译时已经指定的basedir和datadir所以这里不用修改/etc/init.d/mysql了

service mysql start 

2.安装完成后的配置

#修改root用户密码为123(实验环境)
/mysql/bin/mysqladmin -uroot password '123' -p

#将mysql客户端命令添加到环境变量
echo 'export PATH=$PATH:/mysql/bin' >> /etc/profile
source /etc/profile
#或做一个软链接
ln -s /mysql/bin/mysql /usr/bin

#手工定义MySQL的配置文件
vim /mysql/my.cnf
[mysqld]
basedir=/mysql
datadir=/mysql/data
socket=/mysql/mysql.sock

service mysql restart

#安全配置
/mysql/bin/mysql_secure_installation

#添加到开机启动项
chkconfig --add mysql
chkconfig mysql on

3.cmake配置选项

参照:
https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html

配置选项描述默认值建议值
CMAKE_INSTALL_PREFIX安装目录(basedir)/usr/local/mysql根据需求
MYSQL_DATADIR数据目录(datadir)$basedir/data根据需求
SYSCONFDIR默认配置文件my.cnf路径/etc
MYSQL_TCP_PORTTCP/IP端口3306非默认端口
MYSQL_UNIX_ADDR套接字socket文件路径/tmp/mysql.sock$basedir/
DEFAULT_CHARSET默认字符集utf8mb4utf8mb4
DEFAULT_COLLATION默认校验规则utf8mb4_0900_ai_ciutf8mb4_0900_ai_ci
ENABLED_LOCAL_INFILE是否启用本地加载外部数据文件功能OFF建议开启
WITH_SSLSSL支持类型system建议显式指定
WITH_BOOSTBoost库源代码的位置Boost库是构建MySQL所必需,建议事先下载
WITH_FEDERATED_STORAGE_ENGINE本地数据库是否可以访问远程mysql数据01
WITH_INNOBASE_STORAGE_ENGINE将InnoDB存储引擎插件构建为静态模块编译到服务器中01
WITH_BLACKHOLE_STORAGE_ENGINE黑洞存储引擎,接收数据,但不存储,直接丢弃01
WITH_MYISAM_STORAGE_ENGINE将MYISAM存储引擎静态编译到服务器中01
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-19 11:58:28  更:2022-05-19 11:59:31 
 
开发: 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/27 12:03:17-

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