系统环境
macOS: 10.13.6
MySQL: 5.7.32
下载并安装Clion
Clion是一款强大的C/C++ IDE 工具,与IntelliJ IDEA、PyCharm一样,都是JetBrains公司的产品,Clion下载地址:https://www.jetbrains.com/clion/
下载MySQL
我们使用的MySQL版本为5.7.32,下载地址:https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.32.tar.gz
导入MySQL源码
点击open
选择源码路径并导入源码
导入之后Clion会自动进行编译,有可能会报错,先不去管它。
配置Clion
-
1、配置CMake,如下图所示
CMake配置如下:
-DWITH_DEBUG=1
-DWITH_BOOST=/path/to/mysql-5.7.32/boost
:
1、由于我们下载的MySQL源文件中包含了boost文件,所以此处的-DWITH_BOOST
指向我们解压后的源文件目录下的boost
目录就可以了;
2、build directory
是编译后文件的保存路径,保持默认就可以,编译时会自动帮我们在源文件目录下创建该目录。
-
2、运行CMake
点击 File -> Reload CMake Project
运行时有报错,ssl版本太低,最低版本要求1.1.1
用如下方法升级ssl
brew install openssl@1.1
cd /usr/local/opt
unlink openssl
ln -s ../Cellar/openssl@1.1/1.1.1c openssl
:我装的openssl版本是1.1.1c,有小伙伴装的其它版本的,需要把软连接改一下哈。
升级前后对比一下
测试一下
$ openssl version
OpenSSL 1.1.1c 28 May 2019
升级完成后,没遇到其它问题,运行成功。
- 编译mysqld
创建数据目录
mkdir -p /path/to/mysql-5.7.32/buidout/data
创建配置文件my.cnf
cd /path/to/mysql-5.7.32/
vim my.cnf
[mysqld]
log-error=log.err
datadir=/path/to/mysql-5.7.32/buidout/data
pid-file=user.pid
skip-grant-tables
innodb_file_per_table=1
port=3306
[client]
# 客户端来源数据的默认字符集
default-character-set = utf8mb4
[mysqld]
# 服务端默认字符集
character-set-server=utf8mb4
# 连接层默认字符集
collation-server=utf8mb4_unicode_ci
[mysql]
# 数据库默认字符集
default-character-set = utf8mb4
点击右上角的 Edit Configurations...
找到mysqld
,并配置Program arguments
--defaults-file=/path/to/mysql-5.7.32/my.cnf
保存配置后,点击debug按钮(下图箭头所指),进行编译和初始化mysql数据目录
编译时报错如下
/Users/zhengzhou/Documents/cpp_workspace/mysql-5.7.32/storage/innobase/os/os0event.cc:382:24: error: use of undeclared identifier 'CLOCK_MONOTONIC'
if (clock_gettime(CLOCK_MONOTONIC, &tp) == -1) {
^
经google,是缺少/usr/include
目录导致的,在命令行输入以下命令安装/usr/include
目录
xcode-select --install
运行完成后,发现/usr/include
目录已经存在了,继续编译,成功了,且msyqld已经启动了。
- 连接mysql
在命令行输入mysql -uroot -h127.0.0.1
,回车后发现进入了mysql shell,连接成功。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.01 sec)