Mac系统下源码编译安装MySQL 5.7.17的教程

yizhihongxing

下面是“Mac系统下源码编译安装MySQL 5.7.17的教程”:

准备工作

在开始安装前,需要准备一下基础工作:

  1. 安装Xcode开发环境

XcodeMac 上的 IDE 工具,可以辅助开发各种编程语言的程序。获取安装包方式有两种:

  1. Mac App Store 中搜索 Xcode 下载安装(需要苹果账号);
  2. 前往苹果的开发者网站手动下载并安装。(需要注册开发者账号)

  3. 安装 MySQL 依赖库

为了成功编译安装 MySQL ,需要安装一些依赖库,可以通过 Homebrew 来安装:

shell
brew install cmake make openssl

下载MySQL源码

MySQL 的官网下载源码包:

# 打开官方网站,找到下载路径
open https://dev.mysql.com/downloads/mysql/

编译安装

现在进入到主题:如何在 Mac 上通过源码编译方式安装 MySQL 软件。下面是具体步骤:

  1. 解压缩源码

shell
tar xzvf mysql-5.7.17.tar.gz
cd mysql-5.7.17

  1. 配置并编译源码

shell
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_SSL=yes \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=ON \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_ZLIB=system \
-DWITH_SSL=bundled \
-DWITH_BOOST=/opt/local/include/mysql57/mysql
make -j 8
make install

  • -DCMAKE_INSTALL_PREFIX: 表示安装路径,如果需要修改安装目录,请加上此参数;
  • -DMYSQL_DATADIR: 表示指定数据存放的路径,可以自行设定;
  • -DSYSCONFDIR: 表示配置文件存储的路径;
  • -DWITH_SSL: 表示启用 ssl 支持,注意,如果为yes,需要配合 openssl 来使用;
  • -DWITH_MYISAM_STORAGE_ENGINE: 表示启用 MyISAM 存储引擎;
  • -DWITH_INNOBASE_STORAGE_ENGINE: 表示启用 InnoDB 存储引擎;
  • -DWITH_PARTITION_STORAGE_ENGINE: 表示启用 Partition 存储引擎;
  • -DWITH_BLACKHOLE_STORAGE_ENGINE: 表示启用 blackhole 存储引擎;
  • -DENABLED_LOCAL_INFILE: 启用 LOAD DATA LOCAL 语句;
  • -DENABLED_PROFILING: 表示启用性能分析模块;
  • -DWITH_DEBUG: 表示是否启用调试功能,一般情况下可设为 0;
  • -DWITH_READLINE=1: 表示使用 readline 来增强终端的交互性;
  • -DWITH_ZLIB=system: 使用系统自带的 zlib 库;
  • -DWITH_SSL=bundled: 使用自带的 openssl 库;
  • -DWITH_BOOST=/opt/local/include/mysql57/mysql: 指定 MySQL 可选的额外功能库。

  • 配置文件

MySQL 的配置文件存放在 /usr/local/mysql/support-files/ 下,我们需要进行一些定制,以满足我们的要求:

shell
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf

配置文件中有很多参数,需要根据自己的具体场景来修改,例如:

```ini
[mysqld]
user = mysql
datadir = /usr/local/mysql/data
skip-external-locking
default-time-zone = '+08:00'

[mysql]
port = 3306
default-character-set = utf8mb4
```

  1. 创建用户和data文件夹

shell
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/

上面的命令分别创建了MYSQL用户组、MYSQL用户、以及数据存放目录,并设置相应的所有者。

  1. 初始化数据库

shell
# 需要注意的是,一定要切换到mysqld的bin目录下执行命令
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化完成后,可以用以下命令查看默认密码:

shell
grep 'temporary password' /usr/local/mysql/data/error.log

  1. 启动和停止 MySQL

shell
# 启动 MySQL
sudo /usr/local/mysql/support-files/mysql.server start
# 关闭 MySQL
sudo /usr/local/mysql/support-files/mysql.server stop
# 重启 MySQL
sudo /usr/local/mysql/support-files/mysql.server restart

示例

下面两个示例演示一些常用的 MySQL 操作。

示例1:创建一个学生表并插入数据

CREATE TABLE students (
  id INT NOT NULL,
  name VARCHAR(20) NOT NULL DEFAULT "",
  PRIMARY KEY (id)
);

INSERT INTO students (id, name) VALUES
    (1, 'Alice'),
    (2, 'Bob'),
    (3, 'Charlie');

示例2:查询并输出学生表的内容

SELECT * FROM students;

以上就是关于“Mac 系统下源码编译安装 MySQL 5.7.17 的教程”的详细攻略。希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mac系统下源码编译安装MySQL 5.7.17的教程 - Python技术站

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

相关文章

  • C++ clock()解析如何使用时钟计时的应用

    下面就来详细讲解一下“C++ clock()解析如何使用时钟计时的应用”的完整攻略。 1. clock()函数是什么 clock()函数是C语言头文件<time.h>中的一个函数,可以获取程序运行时间。在C++中也可以使用该函数。 2. clock()函数的使用 在使用clock()函数之前,首先需要包含头文件<time.h>。 cl…

    C 2023年5月23日
    00
  • 实例解析js中try、catch、finally的执行规则

    下面是详细讲解“实例解析js中try、catch、finally的执行规则”的攻略。 一、try、catch、finally的基本概念 在JavaScript中,有时我们需要捕获程序执行中的异常信息,同时在出现异常时进行后续处理。这时候我们就需要用到try、catch和finally语句。 try块用于捕获可能引发异常的代码块。 catch块用于处理try块…

    C 2023年5月23日
    00
  • C语言关于文件的操作方法总结

    C语言关于文件的操作方法总结 文件操作是 C 语言中常用的功能之一。本文将综合介绍 C 语言操作文件的各种方法,包括打开文件、读取文件、写入文件、关闭文件,以及文件指针的使用。 打开文件 在 C 语言中,打开文件必须使用 fopen() 函数。这个函数有两个参数:文件名和打开模式。文件名是需要打开的文件名字符串,打开模式参数指定打开文件时的操作。 以下是一些…

    C 2023年5月23日
    00
  • C语言实现简单的学生学籍管理系统

    C语言实现简单的学生学籍管理系统攻略 本系统主要实现以下功能: 添加学生信息; 修改学生信息; 删除学生信息; 查询学生信息; 展示所有学生信息。 1. 添加学生信息 实现思路 添加学生信息需要以下步骤: 获取学生信息,包括姓名、性别、年龄等; 根据学生信息创建一个学生对象; 将学生对象添加到学生列表中。 示例代码 #include <stdio.h&…

    C 2023年5月23日
    00
  • 一波C语言二元查找树算法题目解答实例汇总

    一波C语言二元查找树算法题目解答实例汇总 什么是二元查找树? 二元查找树,又称为二叉搜索树,是一种非常常见的数据结构,它的主要特点是左子树所有节点的值小于其根节点的值,右子树所有节点的值大于其根节点的值。该策略保证整个树的左子树所有节点小于根节点,右子树所有节点大于根节点。 二元查找树可以用来做很多问题,例如查找、插入、删除等。 二元查找树算法题目解答实例汇…

    C 2023年5月22日
    00
  • 浅析VSCode launch.json中的各种替换变量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等

    对于”浅析VSCode launch.json中的各种替换变量的意思”这个话题,以下是我准备好的完整攻略。 1. 简介 在 VSCode 调试过程中,通常需要配置一个 .vscode/launch.json 文件。这个配置文件中包括了很多参数,其中一些参数需要填写变量,这些变量通常用于在不同情况下动态生成参数值。这些变量被称为“替换变量”,是一种非常方便的技…

    C 2023年5月23日
    00
  • C++用easyx图形库实现障碍跑酷小游戏

    使用easyx图形库实现障碍跑酷小游戏 简介 障碍跑酷是一种常见的小游戏类型,玩家需要在游戏中控制一个角色不断向前奔跑,躲避各种障碍物,并收集道具以提高得分。本篇攻略将介绍如何使用C++语言和easyx图形库实现一个简单的障碍跑酷小游戏。 环境 本攻略的实现环境为Windows,使用的开发工具为Visual Studio和EasyX图形库。可以在EasyX的…

    C 2023年5月22日
    00
  • C语言中循环语句练习实例

    下面我将详细讲解如何练习C语言中的循环语句。 什么是循环语句 在 C 语言中, 循环语句分为 for、while、do..while 三种类型。循环语句可以让程序多次执行同一段代码,简化程序逻辑。 循环语句的语法 for 循环语句语法 for (初始化表达式; 条件表达式; 更新表达式) { // 循环体语句 } 其中,初始化表达式只在循环开始时执行一次,条…

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