源码编译安装MySQL8.0.20的详细教程

yizhihongxing

源码编译安装MySQL8.0.20的详细教程

1. 准备工作

在开始编译和安装之前,必须完成以下准备工作:

  1. 下载MySQL源代码包
  2. 安装必要的依赖库和工具 (gcc, make, cmake, ncurses-devel, etc.)
  3. 创建MySQL用户和组

下载MySQL源代码包可以通过官方网站进行下载,也可以使用wget命令进行下载:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20.tar.gz

安装必要的依赖库和工具可以使用以下命令进行安装:

yum install gcc gcc-c++ cmake ncurses-devel bison

创建MySQL用户和组可以使用以下命令进行创建:

groupadd mysql
useradd -r -g mysql mysql

2. 编译和安装MySQL

  1. 解压MySQL源代码包:
tar -zxvf mysql-8.0.20.tar.gz
cd mysql-8.0.20
  1. 配置MySQL编译选项:
cmake . -DDOWNLOAD_BOOST=1 \
    -DWITH_BOOST=../boost \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/usr/local/mysql/data \
    -DSYSCONFDIR=/etc \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_DEBUG=0 \
    -DWITH_EMBEDDED_SERVER=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_SSL=system \
    -DWITH_ZLIB=system \
    -DHAVE_TZINFO=1 \
    -DFORCE_INSOURCE_BUILD=ON \
    -DWITH_UNIT_TESTS=0

参数说明:

  • DOWNLOAD_BOOST:使用自动下载的Boost库
  • WITH_BOOST:指定Boost库的路径
  • CMAKE_INSTALL_PREFIX:指定MySQL的安装路径
  • MYSQL_DATADIR:指定MySQL的数据文件存储路径
  • SYSCONFDIR:指定MySQL的配置文件路径
  • WITH_INNOBASE_STORAGE_ENGINE:启用InnoDB存储引擎
  • WITH_ARCHIVE_STORAGE_ENGINE:启用Archive存储引擎
  • WITH_BLACKHOLE_STORAGE_ENGINE:启用Blackhole存储引擎
  • WITH_DEBUG:不启用调试模式
  • WITH_EMBEDDED_SERVER:启用嵌入式服务器
  • ENABLED_LOCAL_INFILE:启用从本地文件加载数据
  • WITH_SSL:使用系统安装的SSL库
  • WITH_ZLIB:使用系统安装的ZLIB库
  • HAVE_TZINFO:启用时区支持
  • FORCE_INSOURCE_BUILD:在MySQL源代码目录中进行编译
  • WITH_UNIT_TESTS:不编译单元测试

  • 编译和安装MySQL:

make
make install
  1. 配置MySQL:

首先,创建MySQL的主配置文件my.cnf:

vi /etc/my.cnf

复制以下内容:

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1
log-error = /usr/local/mysql/error.log

然后,初始化MySQL:

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

最后,启动MySQL:

bin/mysqld_safe --user=mysql &

3. 示例说明

示例1:创建一个新的MySQL数据库

首先,用root用户登录到MySQL:

mysql -u root -p

然后,创建一个新的数据库:

CREATE DATABASE testdb;

最后,退出MySQL:

quit;

示例2:为MySQL用户授权

首先,用root用户登录到MySQL:

mysql -u root -p

然后,为MySQL用户授权:

GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY 'password';

此处,密码替换为你设置的密码。

最后,更新MySQL权限:

FLUSH PRIVILEGES;

退出MySQL:

quit;

至此,源码编译安装MySQL8.0.20的详细教程已经完成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:源码编译安装MySQL8.0.20的详细教程 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • MariaDB 和 Amazon DynamoDB 的区别

    MariaDB和Amazon DynamoDB是两种不同类型的数据库,它们之间存在很多区别和差异。 MariaDB 什么是MariaDB MariaDB是一个开源的关系型数据库管理系统,它是MySQL的一个分支,被广泛用于Web应用,尤其是在LAMP(Linux,Apache,MySQL,PHP/Perl/Python)环境中使用。MariaDB由MySQL…

    database 2023年3月27日
    00
  • python cx_Oracle模块的安装和使用详细介绍

    Python cx_Oracle模块的安装和使用详细介绍 概述 cx_Oracle是Python语言下操作Oracle数据库的扩展模块,使用它可以在Python中方便地执行SQL语句、存储过程等数据库操作。本文将针对该模块的安装及使用进行详细介绍。 安装 安装Oracle Instant Client 在安装cx_Oracle模块之前,需要先安装Oracle…

    database 2023年5月22日
    00
  • 如何在MySQL中设置外键约束以及外键的作用

    1.外键的作用,主要有两个:   一个是让数据库自己通过外键来保证数据的完整性和一致性   一个就是能够增加ER图的可读性 2.外键的配置    1)先创建一个主表,代码如下:    #创建表student,并添加各种约束   create table student ( id int primary key , #主键约束 name varchar(20)…

    MySQL 2023年4月13日
    00
  • .Net Core使用Redis

    一.准备     在.Net Core项目中使用StackExChange.Redis来使用Redis,这里通过Nuget去安装相关的包。安装完如下图。 二.配置   在appsettings.json中配置Redis的相关信息。一般需要配置连接地址、实例名、哪个DB、密码。 { “Logging”: { “LogLevel”: { “Default”: “…

    Redis 2023年4月12日
    00
  • Mysql数据库按时间点恢复实战记录

    Mysql数据库按时间点恢复实战记录 摘要 Mysql是一种流行的开源关系型数据库管理系统。在开发和部署应用程序时,经常会遇到数据库内容意外丢失或错误操作导致数据出错的情况,需要对数据库进行恢复。本篇文章将详细介绍如何通过时间点恢复的方式来恢复Mysql数据库。 准备工作 安装Mysql数据库; 创建数据库备份方案; 备份数据库文件; 操作步骤 步骤一:查看…

    database 2023年5月22日
    00
  • iOS开发中使用SQL语句操作数据库的基本用法指南

    iOS开发中使用SQL语句操作数据库的基本用法指南 什么是SQL语句 SQL(Structured Query Language)是一种用于管理关系数据库管理系统的语言。SQL可以对数据库进行增删改查等操作。 在iOS开发中使用SQL语句操作数据库的基本步骤 导入数据库框架 在iOS中,我们可以使用SQLite作为本地数据库。我们需要在项目中添加数据库框架,…

    database 2023年5月21日
    00
  • MongoDB中数据的替换方法实现类Replace()函数功能详解

    下面我将为您详细讲解“MongoDB中数据的替换方法实现类Replace()函数功能详解”的完整攻略。 Replace()函数概述 在MongoDB中,Replace()函数可用于替换集合(collection)中的文档(document)。Replace()函数具有以下特点: Replace()函数在替换文档时,会完全覆盖原来的文档,包括原来的文档 _id…

    database 2023年5月21日
    00
  • 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

    深入理解SQL的四种连接 背景 在使用关系型数据库时,连接是一个非常重要的操作。有很多种连接方式,本文将介绍SQL中最常见的四种连接:左外连接、右外连接、内连接和全连接。 左外连接(LEFT JOIN) 左外连接是指将左表中的所有行与右表中匹配的行连接起来,如果右表中没有匹配的行,则用空值来填充。语法如下: SELECT * FROM table_a LEF…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部