1.1 mysql8.0源码安装 for mac

mysql知识点 ,它定义了 MySQL 服务的启动、运行、管理和关闭方式。以下是每个部分的详细解释和原理说明: Description:描述该服务的名称,方便管理员识别其用途。这里是“”。 After=network.target:表明 MySQL 服务应在 (即网络相关服务启动完成)之后启动,以确保 MySQL 能够依赖网络连接(如果配置了远程访问)。这不意味着网络一定启动成功,只是依赖其顺序。 [Install] WantedBy=multi-user.target:指定服务的安装目标,将服务链接到 。该选项决 阅读详情

前言

一般我们要去熟悉源码,就先要看看怎么让源码运行起来,mysql的源码如果需要运行起来存在一些难度,因此我们来尝试下如何将我们之前下载到的源码运行起来。

下载源码
git clone https://github.com/mysql/mysql-server.git
运行环境

我使用的是macOS 10.15,需要按照cmake编译器。利用homebrew进行资源安装。

brew install cmake
依赖库

下载boost_1_72_0.tar.gz

编译源码
##mysql目录
cd mysql-server-8.0
mkdir build && cd build

执行cmake

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/XXXXXXXXX/mysql/mysql-server-8.0/boost/boost_1_72_0

执行make

make -j 12

将/usr/local/mysql/bin增加到PATH

vim ~/.bash_profile

###增加
export PATH=$PATH:/usr/local/mysql/bin
source ~/.bash_profile

增加my.cnf配置

cd /usr/local/mysql
mkdir etc
cd /usr/local/mysql/etc
touch my.cnf

文件内容

[client]

port = 3306
socket = /Users/[自己目录]/mysql/mysql.sock

[mysqld]

#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1

#服务端口号 默认3306
port = 3306

#mysql安装根目录
basedir = /usr/local/mysql

#mysql数据文件所在位置
datadir = /Users/[自己目录]/mysql/data

#pid
pid-file = /Users/[自己目录]/mysql/mysql.pid

#设置socke文件所在目录
socket = /Users/[自己目录]/mysql/mysql.sock

#设置临时目录
tmpdir = /Users/[自己目录]/mysql/tmp

# 用户
#user = mysql

# 允许访问的IP网段
bind-address = 0.0.0.0

# 跳过密码登录
#skip-grant-tables

#主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容
skip-external-locking

#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED

#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4

#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci

#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1

#最大连接数
max_connections = 400

#最大错误连接数
max_connect_errors = 1000

#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M

#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

#内部内存临时表的最大值 ,设置成128M。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 134217728
max_heap_table_size = 134217728

#禁用mysql的缓存查询结果集功能
#后期根据业务情况测试决定是否开启
#大部分情况下关闭下面两项
#query_cache_size = 0
#query_cache_type = 0

#数据库错误日志文件
log_error = /Users/[自己目录]/mysql/logs/error.log

#慢查询sql日志设置
slow_query_log = 1
slow_query_log_file = slow.log

#检查未使用到索引的sql
log_queries_not_using_indexes = 1

#针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数
log_throttle_queries_not_using_indexes = 5

#作为从库时生效,从库复制中如何有慢sql也将被记录
log_slow_slave_statements = 1

#慢查询执行的秒数,必须达到此值可被记录
long_query_time = 8

#检索的行数必须达到此值才可被记为慢查询
min_examined_row_limit = 100

#mysql binlog日志文件保存的过期时间,过期后自动删除
#expire_logs_days = 5

需要在制定的目录创建对应的文件,并且给予权限

chown -R mysql:mysql /Users/[自己目录]/mysql
cd /Users/[自己目录]/mysql
mkdir logs
chown -R mysql:mysql logs
mkdir tmp
chown -R mysql:mysql logs

执行初始化数据库

 mysqld --initialize --console

 2020-07-29T08:28:23.425549Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.21) initializing of server in progress as process 17211
2020-07-29T08:28:23.435503Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-07-29T08:28:23.871382Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-07-29T08:28:24.846075Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: o=Z#gkGpL0rh
2020-07-29T08:28:25.549759Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.21).

启动mysql

cd /usr/local/mysql/support-files
./mysql.server start
########
#Starting MySQL
#.. SUCCESS!
#######
#看看mysql进程
ps -ef|grep mysql

之前做了怎么多工作,重要可以看到我们熟悉的mysql了

mysql -u root -p
##密码之前日志里面已经生成了 就是 o=Z#gkGpL0rh
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.21

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

注意点

1、macOS系统下面运行的,最好使用8.0版本
2、过程中会遇到我这里可能没有提到的一些问题以及解决方案,需要耐心去解决

总结

mysql的源码安装,从官方的文档上面看,是通过cmake进行编译,编译完成之后就变成我们日常看到的可执行文件。编译最大的问题点在于现在boost文件下载的时候,经常会断开,需要自己去下载,并且解压到mysql源码目录下面。还有就是初始化环境,初始化环境的时候一些目录权限的控制。

文件内容
datamysql数据存储目录
logs日志输出
tmp临时目录

返回首页

DataEase 使用外接数据库版本为8.0.27,解决修改 lower_case_table_names=1 不生效问题,实测有效 这篇文章,是在安装开源数据可视化工具 DataEase 时,使用了外接数据库,且数据库版本为8.0.27版本,解决修改lower_case_table_names=1 时,不生效的问题 阅读详情

相关推荐

解锁MySQL 8.0.41源码调试:Mac 11.6+CLion 2024.3.4实战指南

搭建 MySQL 8.0.14 源码在 Mac 11.6 系统下,借助 CLion 2024.3.4、CMake 3.30.5 和 LLDB19.1.3 进行 Debug 环境的过程,虽然步骤较为繁琐,但每一步都至关重要。在这个过程中,需要特别注意各软件版本的兼容性,比如 CMake 版本与 CLion、MySQL 源码之间的适配,避免因版本不兼容导致构建失败。同时,配置 CMake 选项时,一定要仔细核对路径和参数,任何一个小的错误都可能引发后续构建和调试的问题。

山巅 1312

GreatSQL通过错误日志信息判断数据库实例是如何关闭的

在一次客户的数据库实例连接不上了,需要我们排查一下原因,通过查看数据库实例进程已经不存在了,在错误日志中没有发现其他报错信息,发现有shutdown的字样出现,怀疑是某个用户手动关闭了实例。我们通过以下测试,发现是由于用户关闭了主机所导致的。1.正常关闭数据库实例时,错误日志中会记录是由那个数据库用户关闭的,如2.通过 kill 命令关闭数据库实例以及关闭主机(reboot/shutdown)导致数据库实例关闭,错误日志中会记录,可通过history命令查看是否执行过 kill 操作或关闭主机的操作。

GreatSQL2021的博客 1244

MySQL8.4.2源码在MacOS+Clion上的单步调试

今天想在已重装过的MAC电脑上重新走一遍流程,但是遇到了一些问题,最终决定在电脑上编译MySQL8.4.2版本的源码。

简单点 1281

mysql多实例

mysql配置多实例

weixin_54560050的博客 1101

Anylogic试用版密匙

#$%99dTMbLIj+hm/c9fn0suWlfQjdK9FzRH8oSbR Rbm3FEeONkF5mDLKHxhscEDBANDg4BSU2Oi6hErk TH/KzwiCtsM0jfD50uRsj60+gi9ifTlduwcpSr6a GtVSilXwF997xTVAoMLddqOzGQAbnSjBiJOBdm1Z 0QwwIEJynvYgckLfoEADzncIgNnJjYshWcmGh3s9 gTgyuQPlRBeTXfb+ZJPI1JGi4sAUljwdB53Df+AX SEf5FaIbih

qq_43939616的博客 8269

STM32+OpenCV云台PID调参实战:从震荡到丝滑跟踪的进阶之路

本文详细介绍了基于STM32和OpenCV的跟踪云台PID调参实战经验。从硬件搭建、PID控制原理到调参技巧,系统讲解了如何通过调整比例、积分和微分参数解决系统震荡问题,实现从震荡到丝滑跟踪的进阶过程,特别适合电赛和嵌入式视觉控制开发者参考。

tgb3456789的博客 715

[linux学习] 实战系列之日志分析

[linux学习] 实战系列之日志分析 之前有系统的学习过shell命令,但是过会儿就忘得一干二净,只记得cd、ls这些常用命令,果然这些东西还是要带着目的的去用才会熟悉,所以就有了这个实战系列,主要是根据不同的场景来带着目的的去用一下我们常用的命令。 分析什么日志 分析日志分析日志,首先我们得找一段日志吧,日志内容无所谓,千篇一律嘛,我这里在服务器上找了我mysql的错误日志来分析。 error.log: 2021-03-27T14:45:57.543470Z 1 [System] [MY-013576]

lzr_ps的博客 1039

如何用Deep OC-SORT提升多目标跟踪精度?实战配置与性能优化指南

本文是一份针对开发者的Deep OC-SORT多目标跟踪实战指南。详细解析了如何通过部署其核心的“动态外观记忆”与“相机防抖”模块来有效应对遮挡与抖动,从而显著提升跟踪精度与连续性。内容涵盖从环境搭建、参数调优到性能压榨的全流程,并提供针对不同场景的配置建议与工程落地技巧。

f9g0h的博客 670

MAC 下编译调试 MySQL8.0 源码

最近遇到几个关于 MySQL 死锁的问题,但是查看网上的资料发现并不能解决我遇到的问题,于是决定从源码寻找答案,所以在这里记录一下自己编译 MySQL 源码的过程。

曾小二的博客 1973

开发者的避坑指南:在Apple Silicon Mac上构建RocketMQ Python客户端的完整心路历程

本文详细记录了在Apple Silicon Mac上构建RocketMQ Python客户端的完整过程,重点解决了架构兼容性问题。通过源码编译rocketmq-client-cpp库,修复构建脚本和CMake配置,最终成功在M2芯片MacBook Pro上部署RocketMQ Python客户端,为开发者提供了实用的避坑指南。

Pepper的专栏 696

拯救者R7000用户实测:用华为电脑管家11.0版搞定MatePad Pro多屏协同(附驱动与显卡避坑指南)

本文详细介绍了如何在非华为笔记本联想拯救者R7000上安装华为电脑管家11.0版,实现与MatePad Pro的多屏协同功能。从驱动优化到显卡配置,提供了全面的避坑指南和实用技巧,帮助用户解决连接失败等常见问题,提升跨设备生产力体验。

weixin_30788619的博客 398

mac 下源码安装 mysql-8.0.20以及初始化MySQL密码

下载 下载mysql-8.0.20-macos10.15-x86_64.tar.gz 可以从mysql官网下载 https://dev.mysql.com/downloads/mysql/ 解压 tar zxvf mysql-8.0.20-macos10.15-x86_64.tar.gz 移动解压后的二进制包到安装目录 sudo mv mysql-8.0.20-macos10.15-x86_64 /usr/local/mysql 在 /usr/local/mysql 目录新建 data目录文件 cd /

木子聊前端 694

内存|内存的概念、内存的作用、内存的物理结构及内存使用

内存是硬件,是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理。内存是与CPU沟通的桥梁,计算机中所有程序的运行都要依靠内存,内存对计算机的影响非常大。本文简单介绍了内存的概念、作用、物理结构以及使用,内存远不止如此,后续文章会逐步深入讲解。

qq_59938293的博客 2万+

Mac 系统下源码编译安装 MySQL

目录 写在最前: 一、千锤百炼 Boost 库 二、编译安装 MySQL 1、创建自己的目录,放置安装包 2、解压 3、编译、安装 4、变更所属组、用户 5、创建多实例数据、日志等文件存放路径 6、初始化各个实例 [初始化完成后会自带随机密码在输出日志中] 7、各实例开启SSL连接(可选) 三、配置 MySQL 配置文件 1、多实例 2、单实例 四、复制实例脚本到...

SHOWufei 1661

结构函数分析与 JESD51-14 标准详解

结构函数(Structure Function)是将器件瞬态热响应曲线(冷却曲线)通过数学变换,转换为热阻(Rth)与热容(Cth)沿热流路径一维分布的图形化分析方法。它能“看到”热量从结(Junction)到壳(Case)或环境的过程中,经过每一层结构时的热学特性。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 57

【CUDA Runtime】第一个“Hello World“程序

CUDA(Compute Unified Device Architecture)是 NVIDIA 提供的一个并行计算平台和编程模型,旨在通过利用 GPU 的强大计算能力来加速计算密集型应用。对于许多开发者而言,开始学习 CUDA 编程的第一步通常是编写一个简单的“Hello World”程序。尽管 CUDA 的实际应用远远超出一个简单的例子,但这个初步的示例能帮助开发者快速入门,理解基本的 CUDA 编程流程。

m0_62599305的博客 1506

Mac M2 Pro安装MySQL 8.4.3

使用如下命令可以查看MySQL服务的状态,启动、停止、重启MySQL服务。创建好后,重启MySQL服务。命令行登录MySQL后,执行如下SQL。由于工作需要,本地部署的MySQL服务对root用户应该使用。验证环境变量是否生效,如果生效会显示MySQL的版本信息。这样的命令登录MySQL,还需要配置一下系统环境变量。从MySQL 8.0 开始,将默认密码认证插件从。,查看MySQL的环境变量是否正确加载。首先,检查安装路径是否正确,也就是。首先,执行如下命令,查看。目录的更新,一般都需要使用。

lucyLee的博客 2458

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Mac 安装mysql8.0

Mac 安装mysql8.0

test 2939

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mac mysql源码安装_mysql 8.0.16 源码编译[Mac os x平台]

mysql 8.0.16 源码编译[Mac os x平台]2. 下载安装[cmake3.15.4](https://github-production-release-asset-2e65be.s3.amazonaws.com/537699/df454700-e504-11e9-9f92-983f424a74fe?X- Amz-Algo...

weixin_33594971的博客 303

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

mac 编译mysql 源码_Mac上编译MySQL源码与安装

最近遇到好多MySQL相关的问题,每次从网上查完,总是感觉不透彻。关键还是没有看源码。一直想学习下MySQL的内部实现,总是迈不出这一步。周末闲来无事,打算尝试一把。先在Mac上编译一下。这篇文章简单记录下过程。1 源码下载直接从github 上下载了源码。git 地址: github.com/mysql/mysql…最新的分支是8.0, 由于项目中使用了5.7 ,所以我切换到了5.7 的分支。g...

weixin_30678145的博客 270

mac源安装mysql_MySql安装--Mac/Linux/源码安装及其初始化

文章摘要:1、三种配置安装MySql方式:Mac、Linux以及源码一、MAC下安装1、获取Sql:2、安装2.1、双击安装包,安装包将以版本号命名。2.2、安装向导,点击“继续”2.3、安装详情从安装类型页面,您可以单击“安装”以使用所有默认值执行安装向导,单击“自定义”以更改要安装的组件(默认情况下,MySQL服务器,首选窗格,启动支持 - 全部启用),或单击“安装位置“更改安装类型(如果有)...

weixin_35654499的博客 236

关于docker安装nacos1.2.0 连接mysql8.0.19 报错无法启动问题

以下操作在 mac os catalina10.15.3 环境完成 今天在docker用安装了个nacos启动一直报错 查看了下日志 doker logs nacos Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection t...

角落的博客 4408

mac 编译mysql 源码_mysql 8.0.16 源码编译[Mac os x平台]

mysql 8.0.16 源码编译[Mac os x平台]1. 下载#### 1) 下载[mysql源码](https://cdn.mysql.com/archives/mysql-8.0/mysql-boost-8.0.16.tar.gz)#### 2) 下载安装[cmake3.15.4](https://github-production-release-asset-2e65be.s3.ama...

weixin_42721619的博客 272

mac mysql编译安装mysql_Mac上编译MySQL源码与安装

最近遇到好多MySQL相关的问题,每次从网上查完,总是感觉不透彻。关键还是没有看源码。一直想学习下MySQL的内部实现,总是迈不出这一步。周末闲来无事,打算尝试一把。先在Mac上编译一下。这篇文章简单记录下过程。1 源码下载直接从github 上下载了源码。git 地址: github.com/mysql/mysql… 最新的分支是8.0, 由于项目中使用了5.7 ,所以我切换到了5.7 的分支。...

weixin_42408865的博客 282

mysql 8.X数据库源码阅读

mysql 8.X数据库源码阅读 初心 通过一步一步阅读数据库源码,深入的去理解一个数据库需要考虑的各种问题,比如存储、检索、网络连接等等问题。我会不断的更新我的github上面 目录 1.1 mysql8.0源码安装 for mac 2.1 mysql存储-存储引擎 2.2 mysql存储-CSV存储引擎 2.3 mysql存储-CSV插入数据 踩过的坑 1、开始使用的是mysql5.6,发现mysql不支持5.6在mac上的运行。 2、网上有很多关于mysql源码的分析,很多都是基于5.x进行分

781
上一篇: MAC eclipse 安装svn工具
下一篇: 2.1 mysql存储-存储引擎
sinom21
博客等级 码龄19年 22粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinom21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值