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

源码编译安装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日

相关文章

  • Mybatis Plus查询时sql字段名大小写报错的解决

    针对”Mybatis Plus查询时sql字段名大小写报错的解决”这个问题,我提供以下完整攻略: 1. 问题描述 在使用MyBatis Plus进行查询时,如果实体类的属性与数据库表字段的大小写不一致,会导致查询失败,抛出Invalid bound statement (not found)的异常信息。 2. 原因分析 MyBatis Plus是通过反射获取…

    database 2023年5月18日
    00
  • MySQL设置日志输出方式

    MySQL是一款流行的关系型数据库管理系统(RDBMS),为了保证数据安全性和系统维护,MySQL提供了多种日志输出方式,让管理员和开发者可以更好地监控数据库运行中的操作和错误。本文将详细介绍MySQL的日志输出方式,帮助你选择适合你的场景的日志输出方式。 错误日志(Error Log) 错误日志被视为MySQL最重要的日志之一,它会记录MySQL服务器启动…

    MySQL 2023年3月10日
    00
  • ubuntu下在docker中安装mysql5.6 的方法

    下面是在Ubuntu下使用Docker安装MySQL 5.6的攻略: 安装Docker 首先需要安装Docker,可以执行以下命令安装: sudo apt-get update sudo apt-get install docker.io 获取MySQL 5.6的镜像 使用下面的命令从Docker Hub获取MySQL 5.6的镜像: sudo docker…

    database 2023年5月22日
    00
  • 从linux系统mysql导出数据库

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/50763674   1、MySQL数据库导出 /usr/local/mysql/bin/mysqldump -u root -p123456 test> /home/backup/test.sql 其中:root为数据库用户名 123456…

    MySQL 2023年4月13日
    00
  • 详解MySQL BETWEEN AND:范围查询

    MySQL BETWEEN AND 是一种用于范围查询的操作符,它可以帮助我们方便地查询某个数值或日期在某个范围内的记录。 它的语法如下: SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2; 其中, table_name 是我们要查询的表名。 column_name 是我…

    MySQL 2023年3月9日
    00
  • SQL Server子查询的深入理解

    SQL Server子查询的深入理解 子查询是 SQL Server 数据库查询语言中一个重要的概念,可以在查询语句中嵌套一个完整的查询,以实现更加灵活的数据查询和筛选。本文将深入介绍 SQL Server 子查询的用法和实现原理,帮助读者更好地理解和应用这一功能。 什么是子查询 SQL Server 子查询是指在一个 SQL 语句中嵌套了另一个完整的 SQ…

    database 2023年5月21日
    00
  • MySQL和dBASE的区别

    做为网站作者,我们希望为读者提供一些有用的信息,因此在数据库的选择上,我们需要详细讲解MySQL和dBASE的区别。以下是我们的攻略: MySQL和dBASE的区别 概述 MySQL和dBASE都是关系型数据库管理系统(RDBMS),它们的相似之处在于都是用来处理数据的。但两者的设计、结构、容量、性能和功能等方面有所不同。 设计与结构 MySQL由Oracl…

    database 2023年3月27日
    00
  • 浅谈mysql数据库中的using的用法

    下面是关于“浅谈MySQL数据库中的Using的用法”的完整攻略。 什么是Using Using 是 MySQL 中在进行表关联时,指定如何将两个表通过共同的列连接起来的一种方法。 语法格式 SELECT … FROM table1 JOIN table2 USING (column_name); 示例说明一 下面的例子将展示 SELECT 语句中 Us…

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