前回の記事では、次のことを紹介しました。 MySQL8.0.20 インストール チュートリアルとインストールの問題に関する詳細なチュートリアル https://www.jb51.net/article/186202.htm MySQL8.0.20 のダウンロードとインストール、および発生した問題 (画像とテキスト付き) https://www.jb51.net/article/186208.htm CentOS7にMysql8.0.20をインストールする手順: 8.0 リリースノート 1 概要 この記事では主に、ソース コードから MySQL Community Edition 8.0.20 をコンパイルしてインストールする方法について説明します。まず、コンパイルとインストールに関する知識を紹介し、その後コンパイルとインストールを開始します。 2 ソースコードのコンパイルとインストールに関する知識 2.1 作成と構成 make は、現在のディレクトリで Makefile ファイルを検索するコンパイル コマンドです。Makefile ファイルには、ソース コードをコンパイルする方法に関する詳細な情報が記録されます。 Configure は、ソフトウェア開発者が作成した検出プログラムであり、ユーザーの開発環境を検出し、検出が完了した後に Makefile ファイルを生成します。通常、configure は次のものを検出します。
2.2 tarball ファイル Tarball ファイルは、実際には tar を使用してソース コードを圧縮したファイルです。圧縮にはgzipが一般的に使用され、拡張子は.tar.gzまたは.tgzとなります。ただし、bzip2やxzなどの技術はgzipよりも圧縮効果が高いため、ファイル名と拡張子も.tar.bz2または.tar.xzとなります。通常、Tarball ファイルには次のものが含まれます。
2.3 ソースコードから関連コンポーネントをコンパイルしてインストールする 2.3.1 コンパイラ コンパイル操作を実行するにはコンパイラ (通常は gcc) が必要です。 2.3.2 自動構成の作成 コンパイル プロセスを簡素化するために、Tarball 形式でリリースされるソフトウェアでは通常、ターゲット ファイルの依存関係に従ってコンパイルするために make が必要です。ただし、make には Makefile が必要なので、Makefile を生成するには autoconfig が必要です。 2.3.3 関数ライブラリ カーネルによって提供されるライブラリと関連するインクルード ファイルが必要です。 2.4 静的ライブラリと動的ライブラリ 関数ライブラリは動的ライブラリと静的ライブラリの 2 種類に分かれており、そのほとんどは /lib と /lib64 に配置されます。 2.4.1 静的ライブラリ 拡張子は .a で、コンパイル時に実行可能プログラムに直接統合されるため、静的ライブラリを使用して生成されるファイルは大きくなります。コンパイルされた実行可能ファイルは、外部関数ライブラリに依存せずに直接実行できます。また、プログラムに直接統合されているためアップグレードが難しく、静的ライブラリをアップグレードする場合は再コンパイルする必要があります。 2.4.2 動的ライブラリ 拡張子は .so です。静的ライブラリとは異なり、動的ライブラリはコンパイル時にプログラム内にポインターのみを持ちます。実行可能プログラムが関数ライブラリの関数を使用する必要がある場合、関数ライブラリを読み込んで使用します。生成される実行可能ファイルは小さくなりますが、コンパイルされたプログラムを単独で実行することはできません。さらに、実行可能ファイルが新しい関数ライブラリ ファイルを直接ポイントするため、アップグレードはより便利になり、再コンパイルも必要ありません。 2.5 コンパイルとインストールの一般的な手順
上記の手順は順番に実行されており、前の手順が失敗した場合は次のステップを実行できないことに注意してください。つまり、次のステップを実行する前に、前の手順が正常に実行されている必要があります。上記の 6 つの手順を完了したら、コンパイルしてインストールできます。通常は、実行可能ファイルのパスを PATH に追加したり、ヘッダー ファイルとライブラリ ファイルを /usr/include と /etc/ld.so.conf.d に追加したり、オンライン ヘルプ ファイルを /etc/man_db.conf に追加したりするなどの後続処理が必要です。 2.6 コンパイルとインストール前の心理的準備 これが最後のヒントです。インストール前に、Ctrl + W を押してこのページを閉じると、数え切れないほどの苦労を回避できます。 3 MySQLをインストールする 3.1 インストールの依存関係 MySQL に必要な依存関係は次のとおりです。
3.2 パッケージマネージャーのインストール 私の Debian システムでは、apt を使用できます。 sudo apt-get install -y バイソン git ホスト名 libncurses-dev libssl-dev 作成 openssl パッケージ構成 doxygen cmake メイク RedHat8.x: sudo yum install -y bison bzip2 git ホスト名 ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen diffutils rpcgen make libtirpc-devel cmake gcc RedHat7.x: sudo yum install -y bison bzip2 git ホスト名 ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen cmake gcc その他は自分で検索できます。 3.2 コンパイルとインストール パッケージ マネージャーを使用してインストールしたくない場合は、コンパイルしてインストールする方法を使用できます。 3.2.1 cmakeをインストールする tar -zxvf cmake-3.17.2.tar.gz cmake-3.17.2 をインストールします ./bootstrap --prefix=/usr/local/cmake きれいにする make -j 6 #6はCPUコアの数です。カスタム変更です。失敗した場合はmakeを使用してください。 テストする sudo インストール 3.2.2 makeをインストールする コンパイラがなければ、コンパイルしてインストールすることはできません。ソフトウェア パッケージを使用してインストールできます。私の Debian システムでは、apt を直接使用します。 sudo apt をインストールします 3.2.3 gccのインストール tar -xvf gcc-9.3.0.tar.xz gcc-9.3.0 をインストールします ./contrib/ダウンロードの前提条件 mkdir ビルド CDビルド ../configure --prefix=/usr/local/gcc -enable-checking=release -disable-multilib きれいにする メイク -j 6 テストする sudo インストール sudo ln -sv /usr/local/gcc/include /usr/include/gcc #/etc/ld.so.conf.d/gcc.confに次の内容を追加します/usr/local/gcc/lib ローカル 3.2.4 opensslをインストールする tar -zxvf openssl-1.1.1g.tar.gz openssl-1.1.1gをインストールしてください ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/ssl #prefixはインストール場所です。デフォルトは/usr/localです #openssldirは設定ファイルの場所です。証明書とキーペアも保存されます。 メイク -j 6 テストする sudo インストール sudo ln -sv /usr/local/openssl/include /usr/include/openssl #/etc/ld.so.conf.d/openssl.conf および以下の内容 /usr/local/openssl/lib 3.2.5 ダウンロードブースト 公式サイトはこちら。 ダウンロードしたら解凍するだけです。 tar -xvf boost_1_70_0.tar.bz2 3.2.6 ncursesのインストール tar -zxvf ncurses-6.2.tar.gz ncurses-6.2 をインストールします ./configure --prefix=/usr/local/ncurses メイク -j 6 sudo インストール sudo ln -sv /usr/local/ncurses/include /usr/include/ncurses #/etc/ld.so.conf.d/ncurses.conf を /usr/local/ncurses/lib に追加します 3.2.7 バイソンのインストール tar -xvf bison-3.4.tar.xz cd バイソン 3.4 ./configure --prefix=/usr/local/bison メイク -j 6 sudo インストール #/etc/ld.so.conf.d/bison.conf を /usr/local/bison/lib に追加します 3.2.8 gitをインストールする tar -xvf git-2.26.2.tar.xz git-2.26.2をインストールします ./configure --prefix=/usr/local/git \ --with-openssl=/usr/local/openssl \ --with-libpcre2=/usr/local/pcre2 \ --with-curl=/usr/local/curl \ --with-expat=/usr/local/expat \ --with-iconv=/usr/local/iconv \ --with-editor=/usr/bin/vim \ --with-zlib=/usr/local/zlib \ --with-tcltk=/usr/local/tcl すべてのドキュメント情報を作成する sudo make install インストールドキュメント インストールHTML インストール情報 3.2.9 その後の処理 PATH を変更します: # export PATH=$PATH:\ を ~/.bash_profile または ~/.bashrc に追加します /usr/local/cmake/bin:\ /usr/local/gcc/bin:\ ローカルディレクトリ /usr/local/bison/bin:\ /usr/local/ncurses/bin:\ git の bin ディレクトリに、 動的ライブラリを有効にします。 ldconfig 十分な権限がない場合は、sudo を追加します。 3.3 MySQLコミュニティエディションをダウンロードする 公式サイトはこちら。 両方試してみましたが、正常にコンパイルおよびインストールできたため、最初のものと 2 番目のものの違いはわかりません。 2 番目には Boost ヘッダーがあると書かれていますが、役に立たないようです。ここでは最初のものが使用されます。 md5sum mysql-boost-8.0.20.tar.gz 3.4 Makefileを生成する sudo cmake ..\ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_unicode_ci \ # -DENABLED_LOCAL_INFILE=オン\ -DWITH_SSL=システム\ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/server \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL_TCP_PORT=3306 \ -DDOWNLOAD_BOOST=0 \ -DWITH_BOOST=~/デスクトップ/ブースト
その他のパラメータについては、 sudo cmake .. -LH チェック。 3.5 コンパイルとインストール sudo メイク または sudo メイク -jn 作者は make -j 6 を試しましたが失敗したため、make に切り替えるしかありませんでした。 テストする 次にインストールします: sudo インストール 3.6 その後の構成 3.6.1 ユーザーグループとユーザー 新しいユーザー グループとユーザーを作成し、ユーザー データ ディレクトリの権限を変更します。 sudo グループ追加 mysql sudo useradd -r -g mysql -s /bin/false mysql sudo chown mysql:mysql /usr/local/mysql/data sudo chmod 750 /usr/local/mysql/data 必要に応じてデータ ディレクトリを変更します。後で書き込み不可エラーが発生する場合は、権限を 777 に変更します。 3.6.2 設定ファイル 設定ファイルはmy.cnfで、次の場所に配置できます。 /等/ /etc/mysql/ インストールディレクトリ /etc/ ~/ 次に、読む順序は上から下です。著者がインストールした後、デフォルトはグローバル設定である /etc/mysql/my.cnf で、~/.my.cnf はユーザー固有の設定です。ここでは、/etc/mysql/my.cnf を直接変更します。 [クライアント-サーバー] # 設定ディレクトリからすべての.cnfファイルをインポートします !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mariadb.conf.d/ [mysqld] ポート=3306 ベースディレクトリ=/usr/local/mysql/server データディレクトリ=/usr/local/mysql/data 文字セットサーバー=utf8mb4 [mysql] デフォルトの文字セット=utf8mb4 [クライアント] ポート=3306 デフォルトの文字セット=utf8mb4 [mysqld]以下のフィールドが新しく追加され、データディレクトリを自分で変更できるようになりました。 3.7 初期化 環境変数を変更します。 #.bashrc または .bash_profile に加えて、エクスポート PATH=$PATH:/usr/local/mysql/server/bin 使用 mysqld --initialize --user=mysql または mysqld --initialize-insecure --user=mysql 次に、SSL と RSA サポートを有効にします (オプション)。 mysql_ssl_rsa_セットアップ 最後にサービスを開始します。 mysqld_safe --user=mysql & 3.8 パスワードの変更 安全でない初期化を使用している場合は、root としてログインします。 mysql -u --パスワードをスキップ 初期化を使用して初期化します。 mysql -u ルート -p 初期化時に表示されるパスワードを入力するだけです。 'xxx' で識別されるユーザー root@localhost を変更します。 3.9 テスト 組み込みの mysqlshow と mysqladmin を使用します。 mysqladmin -u ルート -p バージョンmysqlshow -u ルート -p 3.10 仕上げ作業 3.10.1 エイリアス エイリアス md='mysqld -u mysql &' このように、md と入力して MySQL サービスを開始できます。 3.10.2 Mycliをインストールする Mycli は、自動補完と構文の強調表示機能を備えた MySQL コマンドライン クライアント ツールです。 pip インストール mycli Python 3の場合は pip3 インストール mycli pip が見つかりません。インストールしてください: sudo apt install python-pip#python2 sudo apt で python3-pip をインストールします 次に、mycli を使用してデータベースに入ります。 mycli -u ルート 完成おめでとうございます! 4 参考文献 1. Linux で MySQL をインストールする方法 (YUM とソース コードのコンパイル) 要約する これで、ソースコードから MySQL 8.0.20 をコンパイルしてインストールする詳細なチュートリアルに関するこの記事は終了です。ソースコードから MySQL 8.0.20 をコンパイルしてインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: JavaScript の重要なブレークポイント デバッグ手法の概要 (推奨)
AES暗号化の使用データ転送の暗号化と復号化処理 --- AES.js最初のステップ: vue に ...
1. Dockerネットワークカードを作成する [root@i ~]# brctl addbr d...
ターゲットzabbix フロントエンド監視の iostat コマンドでデータの 1 つを表示します。...
目次1. はじめに2. 再帰3. コールバック関数3.1 匿名コールバック関数3.2 パラメータ付き...
1. まずmysqld.exeプロセスを停止します2. cmd を開き、mysql の bin ディ...
この記事の例では、音楽プレーヤーを実装するためのJSの具体的なコードを参考までに共有しています。具体...
この点呼装置は簡易版であり、自動停止の必要性を考慮していないため、点呼を開始した後、停止ボタンをクリ...
解決策は次のとおりです。 1. コンテナを強制削除する docker rm -f ジェンキンス2. ...
まず第一に、私はウェブデザイナーです。具体的には、私は XHTML フロントエンド デザイナーです。...
電話Amap API を呼び出す方法は? Amap が https://lbs.amap.com/a...
序文私はプログラマーとしてスタートした PHP プログラマーです。これまで、トレーニング コースで勉...
達成される効果多くの場合、入力ボックスの値の変化をリアルタイムで監視し、ブラウザを誘導してウェブサイ...
目次JS 関数呼び出し、適用、バインドメソッド1. call() メソッド1. call() メソッ...
1. MySQL マスター/スレーブ同期とは何ですか?マスター データベースのデータが変更されると、...
現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...