概要
ソースコードからVillageSQLをビルドすると、最新の機能を利用でき、特定の環境に合わせてビルドをカスタマイズできます。 以下の手順では、アップストリームのMySQL 8.4上にVillageSQLをビルドします。VillageSQLは、代替のコードベースとしてPercona Server上にもビルドできます。Percona ビルドのページを参照してください。前提条件
開始する前に、次のものがインストールされていることを確認してください。- Git - リポジトリのクローン用
- サポートされているプラットフォーム - DebianまたはUbuntu Linux、あるいはHomebrewを導入したmacOS
ステップ1:リポジトリのクローン
GitHubからVillageSQL Serverリポジトリをクローンします。以下のCMakeの手順が変更なしで機能するように、ホームディレクトリにクローンします。-b publish/mysql-8.4_0.0.7。
MySQLのコードベースが含まれているため、リポジトリのサイズは数GBあります。
ステップ2:ビルド依存関係のインストール
クローンしたリポジトリからセットアップスクリプトを実行します。このスクリプトはオペレーティングシステムを検出し、ビルドに必要なパッケージをインストールします。apt-getを使用し、sudoを要求します。macOSでは、Homebrewを使用します。VillageSQLのCIも同じスクリプトでビルド依存関係をインストールするため、パッケージの一覧は常にビルドの内容に追随します。
このスクリプトはDebianまたはUbuntu Linux、およびmacOSをサポートしています。それ以外のLinuxディストリビューションでは、
villagesql/bld_tools/setup_linux_build_env.shを読み、同等のパッケージを各自のパッケージマネージャーでインストールしてください。ステップ3:CMakeによる設定
リポジトリの外部にビルドディレクトリを作成し、プロジェクトを設定します。opensslは現在OpenSSL 4であり、サーバーはOpenSSL 4ではビルドできません。
パスは両方のプラットフォームで
~ではなく$HOMEを使用します。シェルは単語の先頭にある~しか展開しないため、--datadir=~/mysql-data/dataは~という名前のディレクトリとしてmysqldに渡され、サーバーは異常終了します。また、"$HOME/..."と引用符で囲むことで、ホームディレクトリ名にスペースが含まれる場合でもパスが分割されません。リポジトリのパスが異なる場合は、実際のクローン場所に置き換えてください。CMakeオプションの説明
"$HOME/villagesql-server"- クローンされたVillageSQLリポジトリへのパス-DWITH_DEBUG=1- DBUG機能とアサーションを有効にした、最適化なしのビルドを行います(開発に推奨)-DCMAKE_INSTALL_PREFIX="$HOME/mysql"- インストールディレクトリを設定します-DWITH_SSL="$(brew --prefix openssl@3)"- cmakeにOpenSSL 3の場所を指定します。ステップ2でopenssl@3がインストールされます。ステップ2を省略した場合は、先にbrew install openssl@3を実行してください。brew --prefix openssl@3はパッケージが存在しない場合でもパスを出力するため、cmakeはWrong option or path for WITH_SSL=で停止します。
その他のCMakeオプション
プロダクションビルド:再設定する必要がある場合は、最初にCMakeキャッシュをクリアします(ビルドディレクトリ内から実行します)。
ステップ4:コードのコンパイル
makeを使用して、並列コンパイルでVillageSQLをビルドします。ビルドディレクトリ内から: すべてをビルドします(推奨):mysqlクライアント、拡張機能SDK、およびサンプル拡張機能のVEBファイルをビルドします。
サーバーとクライアントのみをビルドします:
INSTALL EXTENSION vsql_complexはインストールするバンドルを見つけられず、-DVillageSQL_BUILD_DIRを渡す拡張機能のビルドはSDKを見つけられません。
完了したら、サーバーとクライアントのバイナリがビルドされたことを確認します。
ステップ5:データベースの初期化
サーバーを初めて起動する前に、データディレクトリを初期化します。 プロダクション(生成されたパスワードを使用 - 推奨):--user=rootフラグが必要です。
プロダクションのような設定では、
--initialize(パスワード付き)を使用します。ローカル開発およびテストでのみ、--initialize-insecure(パスワードなし)を使用します。--initializeを使用すると、一時的なパスワードが生成され、コンソールに出力されます:A temporary password is generated for root@localhost: <password>ステップ6:サーバーの起動
VillageSQLサーバーを起動します。ステップ7:MySQLクライアントでの接続
新しいターミナルを開き、MySQLクライアントを使用してサーバーに接続します。--initialize-insecure(パスワードなし)を使用する場合:
--initialize(生成されたパスワードを使用)を使用する場合:
rootパスワードの変更
--initializeを使用した場合は、一時パスワードを変更します。
インストールの確認
VillageSQLが実行されていることを確認します。ステップ8:ユーザーとデータベースの設定
開発ユーザーの作成
日常的な開発のために、root以外のユーザーを作成します。データベースの作成
ステップ9:テストの実行
ビルドディレクトリから、VillageSQLのテストスイートでビルドを検証します。--nounit-testsは、既知の失敗を含むアップストリームMySQLのユニットテストをスキップします。VillageSQLのユニットテストは別途実行します。
ネイティブパッケージ(RPM/DEB)のビルド
villagesql/bld_tools/build_deb.shとbuild_rpm.shは、上記の手動の手順に従う代わりにパッケージマネージャーでインストールできるように、ソースツリーから直接DebianまたはRPMパッケージをビルドします。どちらも事前のCMake configureを必要としません。両方とも、リポジトリのルートにあるVSQL_VERSIONファイルとMYSQL_VERSIONファイルからパッケージのバージョンを導出します。ステップ1〜2を完了した状態で、パッケージングツールと、ステップ2では入らないビルド依存関係をインストールします。Debian/Ubuntuではdpkg-dev、debhelper、libcurl4-openssl-dev、libsystemd-dev、systemd-dev、Enterprise Linuxではrpm-buildです。その後、リポジトリのルートからどちらかを実行します。
トラブルシューティング
ビルドが依存関係の欠如で失敗する
セットアップスクリプトをもう一度実行します。ステップ3ではビルドディレクトリにいるため、スクリプトの絶対パスを指定します。サーバーが起動しない
- データディレクトリが初期化されていることを確認します:
ls "$HOME/mysql-data/data/" - 別のMySQL/VillageSQLインスタンスがポート3306を使用していないことを確認します
mysqldがターミナルに出力するメッセージを読むか、--log-error="$HOME/mysql-data/error.log"を付けて起動し、そのファイルを読みます
拡張機能のインストールが失敗する
- 拡張機能の
.vebファイルがveb_dirディレクトリ(ソースビルドでは$HOME/build/villagesql/lib/veb)に存在し、そのライブラリがLinuxとmacOSの両方で<extension_name>.soという名前であることを確認します - VillageSQLが拡張機能をロードするために必要な権限を持っていることを確認します
- 拡張機能の名前と
.vebファイル名が正しいことを確認します
次のステップ
拡張機能の使用
VillageSQL拡張機能をインストール、更新、および管理する方法を学びます。
拡張機能の作成
VillageSQL用の独自のカスタム拡張機能を構築します。
はじめに
VillageSQLのクイックスタートガイド。

