Как отлаживать исходный код MySQL с помощью Clion под Mac

MySQL

Несколько статей написали несколько статей для анализа взаимоблокировок путем отладки исходного кода MySQL.Читатели спрашивают, как использовать исходный код отладки IDE, в этой статье кратко рассказывается, как отлаживать под Mac.

Причина, по которой я использую метод отладки для анализа проблемы тупика, заключается в том, что я запутался в процессе решения тупика MySQL. Даже если я найду причину, сложнее убедить себя, что принцип такой же, как один В книге или онлайн-блоге, поэтому я начал изучать его. Исходный код MySQL, потребовался некоторое время для создания среды для отладки исходного кода в Clion. Весь процесс на самом деле очень простой и гладкий.

Скачать клион

Clion — это инструмент IDE C/C++, принадлежащий компании jetbrains, второй по величине IDE-компании во вселенной. IntelliJ IDEA для Java, PyCharm для Python и Goland для Go принадлежат этой компании. Они очень хорошие и мощные. Загрузите и установите со следующего адреса:www.jetbrains.com/clion/

Скомпилируйте и установите MySQL

Здесь выбран исходный код версии 5.5. Размер исходного кода и скорость компиляции намного выше, чем у 5.7. Для понимания принципа работы MySQL нам особой разницы нет, поэтому здесь выбрана 5.5.

# 1. 下载解压源码
wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz 
tar -xzvf mysql-5.5.62.tar.gz

# 2. 生成目录
// 生成编译后安装目录及数据目录
mkdir -p build_out/data

# 3.编译
cmake . -DWITH_DEBUG=1 \
-DCMAKE_INSTALL_PREFIX=build_out \
-DMYSQL_DATADIR=build_out/data
make && make install

# 4. 初始化 mysql 数据库
cd build_out
scripts/mysql_install_db

Конфигурация Клиона

1. Настройте Cmake, как показано на рисунке ниже

2. Настройте параметры запуска mysqld и укажите путь файла конфигурации для чтения--defaults-file=/path/to/my.cnfЭталонная конфигурация my.conf выглядит следующим образом.

[mysqld]  
log-error=log.err
datadir=data
pid-file=user.pid
skip-grant-tables
innodb_file_per_table=1
port=33060
transaction_isolation = READ-COMMITTED

[client]
# 客户端来源数据的默认字符集
default-character-set = utf8mb4
[mysqld]
# 服务端默认字符集
character-set-server=utf8mb4
# 连接层默认字符集
collation-server=utf8mb4_unicode_ci
[mysql]
# 数据库默认字符集
default-character-set = utf8mb4

Нажмите кнопку отладки, чтобы отладить

PS: Обратите внимание, что список, где расположен MySQLD, не сортируется в алфавитном порядке, вы можете найти его, отчаянно потянув.

Неудивительно, что в это время MySQL запущен, слушая установленный нами выше порт 33060, и с помощью клиента MySQL можно нормально подключиться (учетная запись root, пароль пустой)

Cion может быть очень удобен для пошагового прохождения точек останова и просмотра значений переменных, например, мы находимся вsql_parse.ccизdo_commandНажмите функцию точки останова, просто выполните оператор SQL, можно увидеть здесь

На этом процесс компиляции и отладки исходного кода MySQL в основном завершен. Позже будут еще случаи использования отладки для решения некоторых конкретных проблем. Ждите с нетерпением. Если у вас есть какие-либо вопросы, оставьте сообщение или добавьте WeChat для связи.