MacOS 上以源码形式安装 MySQL 5.7

以下是在 macOS 上从源码安装 MySQL 5.7 的步骤:

前置条件

  1. 安装 Homebrew:如果你还没有安装 Homebrew,可以在终端中运行以下命令进行安装:

    bash 复制代码
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  2. 更新 Homebrew:确保你的 Homebrew 是最新版本,运行以下命令:

    bash 复制代码
    brew update

安装 MySQL 5.7

  1. 下载 MySQL 5.7 源码 :从官方网站下载 MySQL 5.7 的源码包。例如,你可以下载 mysql-5.7.37.tar.gz

  2. 解压源码包:在终端中,使用以下命令解压下载的源码包:

    bash 复制代码
    tar -xzf mysql-5.7.37.tar.gz
  3. 编译和安装 MySQL:进入解压后的目录,并运行以下命令:

    bash 复制代码
    cd mysql-5.7.37
    cmake. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_INNODB=ON -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=1
    make
    sudo make install

    这将编译并安装 MySQL 到 /usr/local/mysql 目录。

  4. 初始化 MySQL 数据库:运行以下命令来初始化 MySQL 数据库:

    bash 复制代码
    sudo /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    这将创建一个空的 MySQL 数据库,并设置一个默认的 root 用户密码(在这个例子中,密码被设置为空)。

  5. 启动 MySQL 服务:运行以下命令来启动 MySQL 服务:

    bash 复制代码
    sudo /usr/local/mysql/support-files/mysql.server start
  6. 登录 MySQL:使用以下命令登录到 MySQL 服务器:

    bash 复制代码
    mysql -uroot
  7. 修改 root 密码:为了安全起见,建议你修改 root 用户的密码。可以使用以下命令来设置新密码:

    sql 复制代码
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_new_password');

    your_new_password 替换为你想要设置的新密码。

  8. 配置 MySQL :如果需要,可以编辑 /etc/my.cnf 文件来配置 MySQL 服务器的各种选项。

结束语

现在,你已经成功从源码安装了 MySQL 5.7 在 macOS 上。记得根据你的需求进行适当的配置和安全设置。

为什么我们在安装 MySQL 5.7 前先安装 Homebrew 的几个原因:

  1. 依赖关系管理:MySQL 的编译和安装需要一些依赖项,例如 CMake、GCC 等。Homebrew 可以自动安装这些依赖项,避免了手动搜索和安装的麻烦。

  2. 简化编译过程:使用 Homebrew 安装依赖项后,编译 MySQL 的步骤会更简单。Homebrew 提供的预编译二进制文件和库可以大大缩短编译时间。

  3. 方便的更新和卸载:如果你想更新或卸载 MySQL,使用 Homebrew 会更加方便。只需运行相应的命令,Homebrew 就会处理所有的依赖关系和文件。

  4. 统一的安装路径 :Homebrew 将所有安装的软件和工具都放在 /usr/local 目录下,这使得管理和查找这些文件变得更加容易。

  5. 社区支持:Homebrew 有一个庞大的用户和开发者社区,提供了大量的插件和公式,可以帮助你安装和管理各种软件和工具。

总的来说,使用 Homebrew 可以简化 MySQL 的安装过程,减少可能出现的错误,并提供更好的管理和更新体验。

相关推荐
王琦031824 分钟前
生产环境中使用通用二进制包安装
mysql
蓝田~3 小时前
MySQL慢查询怎么优化?B+Tree索引原理+MVCC读不阻塞写+EXPLAIN执行计划,从5秒到0.05秒
数据库·mysql
Herbert_hwt3 小时前
MySQL学习前言:关于MySQL的历史与当下学习的必要性
mysql
时间的拾荒人4 小时前
MySQL 视图详解
android·数据库·mysql
尽兴-5 小时前
企业数据库选型与演进:Oracle、达梦、MySQL 与分库分表实践
数据库·mysql·oracle·分库分表
IT瑞先生6 小时前
Docker快速部署Mysql的三种方法——实操篇
mysql·adb·docker
数据库小学妹7 小时前
MySQL在线DDL实战:ALGORITHM三种算法对比+gh-ost变更管理SOP
mysql·dba·数据库运维·在线ddl·mdl锁·sql变更管理
Ethan01078 小时前
隔离级别管读,乐观锁管写——RC/RR 与写冲突的本质
mysql
熊文豪9 小时前
【金仓数据库征文】不装中间件的 MySQL→金仓在线迁移,mysql_fdw 全流程,和一个差点漏掉的 emoji
数据库·mysql·中间件·电科金仓
C++、Java和Python的菜鸟9 小时前
第5章 后端Web基础 (MySQL基础)
前端·mysql·adb