MySQL 5.7.13 ソースコードのコンパイル、インストール、および構成方法のグラフィックチュートリアル

MySQL 5.7.13 ソースコードのコンパイル、インストール、および構成方法のグラフィックチュートリアル

インストール環境: CentOS7 64ビットMINI版

公式ソースコードのコンパイルおよびインストールドキュメント: http://dev.mysql.com/doc/refman/5.7/en/source-installation.html

1. システム設置条件

公式ドキュメント: http://dev.mysql.com/doc/refman/5.7/en/source-installation.html

1>cmake

MySQL は、MySQL のコンパイル パラメータを設定するために使用されるソース コードを事前コンパイルするために、クロスプラットフォーム ツールの cmake を使用します。たとえば、インストール ディレクトリ、データ保存ディレクトリ、文字エンコード、ソート規則などです。最新バージョンをインストールするだけです。

2> 3.75を作る

MySQL ソース コードは C および C++ で記述されています。Linux でソース コードをコンパイルおよびビルドするには、make を使用します。make 3.75 以上をインストールする必要があります。

3> gcc4.4.6

GCC は Linux 上の C 言語コンパイラです。MySQL ソース コードのコンパイルは完全に C および C++ で記述されています。GCC4.4.6 以上をインストールする必要があります。

4> ブースト1.59.0

MySQL ソース コードは C++ Boost ライブラリを使用するため、boost 1.59.0 以降をインストールする必要があります。

5> バイソン2.1

Linux 用 C/C++ パーサー

6> ncurses

文字端末処理ライブラリ

したがって、インストールの前に、関連する依存ライブラリをインストールする必要があります。

シェル> sudo yum install -y cmake、make、gcc、gcc-c++、bison、ncurses、ncurses-devel


Boost 1.59.0 のソース コードをダウンロードし、/usr/local/ ディレクトリに解凍します。

シェル> wget -O https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
シェル> tar -zxvf boost_1_59_0.tar.gz -C /usr/local/


2. MySQLソースコードをダウンロードする

githubからmysqlソースコードをダウンロードする

シェル> cd /opt
シェル> git clone https://github.com/mysql/mysql-server.git
シェル> ls mysql-server

git クライアントがインストールされていない場合は、yum install -y git を実行してインストールします。

シェル> git ブランチ -r
起源/5.5
起源/5.6
起源/5.7
origin/HEAD -> origin/5.7
オリジン/クラスター-7.2
オリジン/クラスター-7.3
オリジン/クラスター-7.4
オリジン/クラスター-7.5


現在のブランチのデフォルトはバージョン 5.7 です。他のバージョンをインストールする場合は、対応するブランチに切り替えるだけです。たとえば、バージョン 5.6 をインストールする場合は、git checkout 5.6 を実行します。ここでは、バージョン 5.7 のインストールを例に説明します。

Sohuミラーダウンロードアドレス:
http://mirrors.sohu.com/mysql/MySQL-5.5/
http://mirrors.sohu.com/mysql/MySQL-5.6/
http://mirrors.sohu.com/mysql/MySQL-5.7/

3. インストール

1> MySQLユーザーを追加する

シェル> cd /opt/mysql-server
shell> groupadd mysql #mysql ユーザーグループを追加 shell> useradd -r -g mysql -s /bin/false mysql #mysql ユーザーを追加

2> MySQLのプリコンパイルパラメータを設定する

シェル> cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=すべて

-DCMAKE_INSTALL_PREFIX: インストールパス
-DMYSQL_DATADIR: データ保存ディレクトリ
-DWITH_BOOST: ソースコードパスをブーストする
-DSYSCONFDIR: my.cnf 構成ファイル ディレクトリ
-DEFAULT_CHARSET: データベースのデフォルトの文字エンコード
-DDEFAULT_COLLATION: デフォルトのソートルール
-DENABLED_LOCAL_INFILE: このファイルからのデータのインポートを許可する
-DEXTRA_CHARSETS: すべての文字セットをインストールする

プリコンパイルされた構成パラメータの詳細については、MySQL の公式ドキュメントを参照してください: http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#cmake-general-options

3> コンパイルしてインストールする

シェル> make -j `grep プロセッサ /proc/cpuinfo | wc -l`
シェル>インストールする

-j パラメータは、CPU コアの数に基づいてコンパイル中のスレッド数を指定し、コンパイルを高速化できます。デフォルトは 1 スレッドのコンパイルです。テストの結果、シングルコア CPU と 1G のメモリでは、コンパイルに約 1 時間かかります。

4> システムデータベースを初期化する

シェル> cd /usr/local/mysql
シェル> chown -R mysql:mysql 。
# 注意: MySQL 5.7.6 より前のバージョンでは、このスクリプトを実行してシステム データベースを初期化します。shell> ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 5.7.6 以降のバージョンの初期システム データベース スクリプト (この記事ではこのメソッドを使用して初期化します)
シェル> ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
シェル> ./bin/mysql_ssl_rsa_setup
シェル> chown -R root 。
シェル> chown -R mysqlデータ

注: --initialize パラメータを使用してシステム データベースを初期化すると、次の図の赤い円で示すように、root ユーザーの一時パスワードが ~/.mysql_secret ファイルに生成され、初期化ログに出力されます。


5. 設定ファイルとパラメータの最適化

シェル> cp サポートファイル/my-default.cnf /etc/my.cnf
シェル> vim /etc/my.cnf

[クライアント]
ポート=3306
ソケット=/usr/local/mysql/mysql.sock
[mysqld]
文字セットサーバー=utf8
照合サーバー=utf8_general_ci

外部ロックをスキップ
名前解決をスキップ

ユーザー=mysql
ポート=3306
ベースディレクトリ=/usr/local/mysql
データディレクトリ=/usr/local/mysql/data
tmpdir=/usr/local/mysql/temp
# server_id = .....
ソケット=/usr/local/mysql/mysql.sock
ログエラー=/usr/local/mysql/logs/mysql_error.log
pidファイル=/usr/local/mysql/mysql.pid
オープンファイル制限=10240
バックログ=600
最大接続数=500
最大接続エラー数=6000
待機タイムアウト=605800
#オープンテーブル=600
#テーブルキャッシュ = 650
#開かれたテーブル = 630

最大許容パケット数=32M
ソートバッファサイズ=4M
結合バッファサイズ=4M
スレッドキャッシュサイズ=300
クエリキャッシュタイプ=1
クエリキャッシュサイズ=256M
クエリキャッシュ制限=2M
クエリキャッシュ最小解像度単位=16k

tmp_table_size=256M
最大ヒープテーブルサイズ=256M

キーバッファサイズ=256M
読み取りバッファサイズ=1M
読み取りバッファサイズ=16M
バルク挿入バッファサイズ=64M

小文字テーブル名=1

デフォルトのストレージエンジン=INNODB

innodb_buffer_pool_size=2G
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_flush_method=O_DIRECT
#####################
スレッド同時実行数=32
長いクエリ時間=2
スロークエリログ=オン
スロークエリログファイル=/usr/local/mysql/logs/mysql-slow.log

[mysqlダンプ]
素早い
最大許容パケット数=32M

[mysqld_safe]
ログエラー=/var/log/mysqld.log
pidファイル=/var/run/mysqld/mysqld.pid

6. MySQLサービスを構成する

シェル> cp サポートファイル/mysql.server /etc/init.d/mysqld
shell> chkconfig --add mysqld # システムサービスに追加 shell> chkconfig mysqld on # 起動時に開始

7. サービスを開始する

shell> service mysqld start # MySQL サービスを起動します shell> service mysqld stop # MySQL サービスを停止します shell> service mysqld restart # MySQL サービスを再起動

8. データベースのパスワードを設定する

shell> /usr/local/mysql/bin/mysql -e "grant オプションを使用して、"root" によって識別される root@'127.0.0.1' に *.* のすべての権限を付与します。"
shell> /usr/local/mysql/bin/mysql -e "grant オプションを使用して、"root" で識別される root@'localhost' に *.* のすべての権限を付与します。"
# リモートログインを有効にする(ホストを%に設定)
/usr/local/mysql/bin/mysql -e "grant オプションを使用して、"root" で識別される root@'%' に *.* のすべての権限を付与します。"


9. MySQL環境変数を設定する

シェル> vim /etc/profile
シェル> PATH=/usr/local/mysql/bin:$PATH をエクスポートします
シェル> ソース /etc/profile


4. その他留意事項

途中でコンパイルに失敗した場合は、cmake によって生成されたコンパイル前設定パラメータのキャッシュ ファイルと make コンパイル後に生成されたファイルを削除して、再コンパイルする必要があります。

シェル> cd /opt/mysql-server
シェル> rm -f CMakeCache.txt
シェル> クリーンにする

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 最も完全な MySQL 5.7.13 のインストールおよび構成方法のグラフィック チュートリアル (Linux) を強くお勧めします。
  • MySQL 5.7 以降のバージョンのインストールと設定方法のグラフィック チュートリアル (mysql 5.7.12\mysql 5.7.13\mysql 5.7.14)
  • Linux 環境での MySQL 5.7.13 インストール チュートリアル
  • MySQL5.7.13 環境構築チュートリアル(解凍版)
  • MySQL 5.7.13 のインストールと設定に関する注意事項 (Mac OS)
  • MySQL 5.7.13 解凍版(無料インストール)のインストールと設定のチュートリアル
  • MySQL 5.7.13 のインストールと設定方法のグラフィック チュートリアル (Linux)
  • MySQL 5.7.13 のインストールと設定方法のグラフィック チュートリアル (win10)
  • mysql5.7.13.zip インストール チュートリアル (Windows)
  • MySQL 5.7.13 winx64 のインストールと設定方法のグラフィックチュートリアル

<<:  Dockerfile を使用して nginx イメージを構築する例

>>:  jQueryはシャトルボックス効果を実現します

推薦する

MySQLを定期的にバックアップしてQiniuにアップロードする方法

ほとんどのアプリケーション シナリオでは、緊急時に備えて重要なデータをバックアップし、安全な場所に保...

Docker+keepalived+nginx を使用してマスタースレーブホットスタンバイを実装する方法の例

序文単一障害点を解決するには、マスター/スレーブ ホット スタンバイ ソリューションを構成する必要が...

Mysql インデックスと Redis ジャンプテーブルについての簡単な説明

まとめインタビュー中、MySQL インデックスの問題について議論しているときに、B+ ツリー、B ツ...

Dockerの動作モードと原理の詳細な説明

次の図に示すように: 仮想マシンと Docker を使用するとき、「なぜ Docker は VM よ...

IDEA で Docker を WSL2 にデプロイする詳細なプロセス

ローカル環境はWindows10+WSL2(Ubuntu)です。サーバーにDockerをインストール...

CSS最適化スキルの自己実践体験

1. CSS スプライトを使用します。利点は、CSS で使用される小さな画像を 1 つの大きな画像に...

a タグにはテキストと画像があります。テキストを非表示にして画像のみを表示するにはどうすればよいでしょうか?

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

Windows (x86、64 ビット) で MySQL 5.7.17 無料インストール バージョンをアップグレードするための詳細なチュートリアル

Laravel 5.4 のデフォルトの utf8mb64 文字エンコーディングをサポートするには、M...

実行中の Docker コンテナにボリュームを動的に追加する方法

以前、Docker コンテナの起動後にボリュームをマウントできるかどうか尋ねられたことがあります。m...

Linux環境にMySQLデータベースをインストールする詳細なチュートリアル

1. データベースをインストールする1) yum -y install mysql-server (...

MySQL の 4 つのトランザクション分離レベルを例を使って分析する

序文データベース操作では、同時データ読み取りの正確性を効果的に保証するために、トランザクション分離レ...

CentOS のファイルと権限の基本操作チュートリアル

序文始める前に、ファイル属性とファイル属性を変更する方法について簡単に理解しておく必要があります。 ...

ElementUI の this.$notify.close() 呼び出しが機能しない問題の解決方法

目次要件の説明問題の説明問題分析問題解決質問の拡張要件の説明このプロジェクトでは、まずユーザーが質問...

CSSボックスモデルの紹介を読めば、混乱することはなくなるでしょう

Web デザインでよく耳にするプロパティ名: content、padding、border、marg...

MySQL スロークエリログの詳細な理解

目次スロークエリログとは何ですか?スロークエリを有効にする方法ログ分析ツール mysqldumpsh...