CentOS8 デプロイメント LNMP 環境で mysql8.0.29 をコンパイルしてインストールする方法の詳細なチュートリアル

CentOS8 デプロイメント LNMP 環境で mysql8.0.29 をコンパイルしてインストールする方法の詳細なチュートリアル

1. 前提条件

何度かインストールしているので、エラーについてはこれ以上説明しません。ちょっとわかりにくいですね! ! !関連する依存関係やエラーを事前にその場で解決します。

1. 必要なソースコードパッケージ

mysql-8.0.19.tar.gz 
boost_1_70_0.tar.gz //mysql-8 に必要な boost バージョンをインストールします rpcsvc-proto-1.4.tar.gz //後でエラーが発生するために必要なソース コード パッケージ mysql-8.0.19 ダウンロード アドレス: http://mirrors.sohu.com/mysql/
boost_1_70_0 ダウンロードアドレス: https://dl.bintray.com/boostorg/release/1.70.0/source/
rpcsvc-proto-1.4 ダウンロード アドレス: https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/

2. 依存関係を解決する

[14:41:21 root@wangzhike ~]#yum install -y cmake ncurses-devel

3. 保管場所

ソフトウェア ソース コード パッケージの保存場所: /usr/local/src
ソースパッケージのコンパイルとインストール場所: /usr/local/ソフトウェア名

2. mysql-8.0.19をコンパイルしてインストールする

1. ソースコードパッケージをアップロードする

ブースト_1_70_0.tar.gz		
mysql-8.0.19.tar.gz		
rpcsvc-proto-1.4.tar.gz 

ここに画像の説明を挿入

2. rpcsvc-proto-1.4を解く

1) 減圧

[17:05:14 root@wangzhike software]#tar -zxf rpcsvc-proto-1.4.tar.gz -C /usr/local/src/

2) ワンステップインストール

[17:09:48 root@wangzhike rpcsvc-proto-1.4]#./configure && make && make install

3. boost_1_70_0を解く

[17:13:48 root@wangzhike~]# mkdir -p /usr/local/boost
[17:14:05 root@wangzhike~]# cd /usr/local/src
[17:15:02 root@wangzhike src]#cp /software/boost_1_70_0.tar.gz /usr/local/boost/
[17:26:22 root@wangzhike boost]#tar xf boost_1_70_0.tar.gz
//// /usr/local/src/ ストレージディレクトリにのみアップロードし、現在の boost ディレクトリに解凍します

4. MySQLユーザーとグループを作成する

[17:27:46 root@wangzhike ~]#groupadd mysql
[17:28:10 root@wangzhike ~]#useradd -g mysql mysql -s /bin/false
####ユーザー mysql を作成し、mysql グループに追加します。mysql ユーザーがシステムに直接ログインすることは許可しないでください [17:28:11 root@wangzhike ~]#mkdir -p /data/mysql 
####MySQLデータベースストレージディレクトリを作成します[17:29:13 root@wangzhike ~]#chown -R mysql:mysql /data/mysql 
####MySQLデータベースを保存するディレクトリの権限を設定します[17:29:31 root@wangzhike ~]#mkdir -p /usr/local/mysql 
####MySQLインストールディレクトリを作成する

5. mysql-8.0.19をインストールする

1) 減圧

[17:43:24 root@wangzhike software]#tar -zxf mysql-8.0.19.tar.gz -C /usr/local/src/
[17:43:47 root@wangzhike software]#cd /usr/local/src/
[17:43:53 root@wangzhike src]#cd mysql-8.0.19/

2) インストール

[17:47:01 root@wangzhike mysql-8.0.19]#cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/data/mysql -DMYSQL_USER=mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=すべて\
-DWITH_BOOST=/usr/local/boost

次のような場合は問題はありません

CMake警告: 手動で指定された変数は使用されませんでした
プロジェクト:

追加文字セット
インストールデータディレクトリ
MYSQL_ユーザー
埋め込みサーバー付き

– ビルドファイルは /usr/local/src/mysql-8.0.19 に書き込まれました

rpc.hに関する次のエラーが発生した場合
/usr/include または /usr/include/tirpc に rpc/rpc.h が見つかりませんでした

解決:

[17:45:47 root@wangzhike mysql-8.0.19]#find / -name rpc.h
/usr/local/src/mysql-8.0.19/extra/libevent/include/event2/rpc.h
/usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc/rpc.h

####/usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/ディレクトリのrpc/rpc.hを/usr/include/にコピーします。

次のように

[17:52:57 root@wangzhike mysql-8.0.19]#cp -a /usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc /usr/include/

3) 作成してインストールする

[17:55:20 root@wangzhike mysql-8.0.19]#make -j 3 && インストール
//プロセスが長すぎてメモリが不足している場合は、エラーが報告されます

待って、待って、待って

次のエラーが報告された場合は、メモリが不足しており、パーティションを作成する必要があることを意味します。

+: 致命的なエラー: シグナルが強制終了され、プログラム cc1plus が終了しました
コンパイルが終了しました。
make[2]: *** [sql/CMakeFiles/sql_gis.dir/build.make:154: sql/CMakeFiles/sql_gis.dir/gis/distance_functor.cc.o] エラー1
make[2]: *** 未完了のジョブを待機しています....
make[1]: *** [CMakeFiles/Makefile2:11144: sql/CMakeFiles/sql_gis.dir/all] エラー2
make: *** [Makefile:163: all] エラー 2

パーティションを作成します。

[19:58:37 root@wangzhike mysql-8.0.19]#dd if=/dev/zero of=/swapfile bs=1k count=2048000
2048000+0 件のレコード
2048000+0 レコードが出力されました
2097152000 バイト (2.1 GB、2.0 GiB) をコピーしました。6.07651 秒、345 MB/秒
####追加する 2G SWAP ファイル ブロックを取得します [20:10:02 root@wangzhike mysql-8.0.19]#mkswap /swapfile
mkswap: /swapfile: 安全でない権限 0644、0600 が推奨されます。
スワップスペース バージョン 1 を設定しています。サイズ = 2 GiB (2097147904 バイト)
ラベルなし、UUID=18a4bbb3-75d1-411b-ac0c-c87c63547509
####SWAPファイルを作成[20:10:07 root@wangzhike mysql-8.0.19]#swapon /swapfile
swapon: /swapfile: 安全でない権限 0644、0600 が推奨されます。
####SWAPファイルを有効化[20:10:12 root@wangzhike mysql-8.0.19]#swapon -s
ファイル名 タイプ サイズ 使用 優先度
/dev/sda2 パーティション 2144252 137300 -2
/swapfile ファイル 2047996 0 -3
#####SWAP情報が正しいか確認する[20:10:19 root@wangzhike mysql-8.0.19]#echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
####システム起動時に自動的に開始するようにfstabファイルに追加します

make -j 3 && make installを再実行すると、次の画面が表示され、エラーは報告されません。

「バッシュ」
-- インストール中: /usr/local/mysql/man/man1/comp_err.1
-- インストール中: /usr/local/mysql/man/man1/ibd2sdi.1
-- インストール中: /usr/local/mysql/man/man1/innochecksum.1
-- インストール中: /usr/local/mysql/man/man1/lz4_decompress.1
-- インストール中: /usr/local/mysql/man/man1/my_print_defaults.1
-- インストール中: /usr/local/mysql/man/man1/myisam_ftdump.1
-- インストール中: /usr/local/mysql/man/man1/myisamchk.1
-- インストール中: /usr/local/mysql/man/man1/myisamlog.1
-- インストール中: /usr/local/mysql/man/man1/myisampack.1
-- インストール中: /usr/local/mysql/man/man1/mysql.1
-- インストール中: /usr/local/mysql/man/man1/mysql.server.1
-- インストール中: /usr/local/mysql/man/man1/mysql_config.1
-- インストール中: /usr/local/mysql/man/man1/mysql_config_editor.1
-- インストール中: /usr/local/mysql/man/man1/mysql_secure_installation.1
-- インストール中: /usr/local/mysql/man/man1/mysql_ssl_rsa_setup.1
-- インストール中: /usr/local/mysql/man/man1/mysql_tzinfo_to_sql.1
-- インストール中: /usr/local/mysql/man/man1/mysql_upgrade.1
-- インストール中: /usr/local/mysql/man/man1/mysqladmin.1
-- インストール中: /usr/local/mysql/man/man1/mysqlbinlog.1
-- インストール中: /usr/local/mysql/man/man1/mysqlcheck.1
-- インストール中: /usr/local/mysql/man/man1/mysqld_multi.1
-- インストール中: /usr/local/mysql/man/man1/mysqld_safe.1
-- インストール中: /usr/local/mysql/man/man1/mysqldump.1
-- インストール中: /usr/local/mysql/man/man1/mysqldumpslow.1
-- インストール中: /usr/local/mysql/man/man1/mysqlimport.1
-- インストール中: /usr/local/mysql/man/man1/mysqlman.1
-- インストール中: /usr/local/mysql/man/man1/mysqlpump.1
-- インストール中: /usr/local/mysql/man/man1/mysqlshow.1
-- インストール中: /usr/local/mysql/man/man1/mysqlslap.1
-- インストール中: /usr/local/mysql/man/man1/perror.1
-- インストール中: /usr/local/mysql/man/man1/zlib_decompress.1
-- インストール中: /usr/local/mysql/man/man8/mysqld.8
-- インストール中: /usr/local/mysql/man/man1/mysqlrouter.1
-- インストール中: /usr/local/mysql/man/man1/mysqlrouter_passwd.1
-- インストール中: /usr/local/mysql/man/man1/mysqlrouter_plugin_info.1

3. MySQLデータベースを初期化する

1. mysqlディレクトリの権限を変更する

[20:37:59 root@wangzhike mysql-8.0.19]#chown -R mysql:mysql /usr/local/mysql
[20:42:07 root@wangzhike mysql-8.0.19]#chmod -R 755 /usr/local/mysql

2. MySQLを初期化する

[20:45:07 root@wangzhike ~]#cd /usr/local/mysql/
[20:46:43 root@wangzhike mysql]#./bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --character-set-server=utf8
2020-04-14T12:47:13.718724Z 0 [システム] [MY-013169] [サーバー] /usr/local/mysql/bin/mysqld (mysqld 8.0.19) プロセス 9893 としてサーバーの初期化が進行中です
2020-04-14T12:47:13.719367Z 0 [警告] [MY-013242] [サーバー] --character-set-server: 'utf8' は現在、文字セット UTF8MB3 のエイリアスですが、将来のリリースでは UTF8MB4 のエイリアスになります。明確さを保つために、UTF8MB4 の使用を検討してください。
2020-04-14T12:47:14.855541Z 5 [注記] [MY-010454] [サーバー] root@localhost の一時パスワードが生成されました: rUG-.8kdw<1f
####mysql システム データベースを生成します。

3. 設定ファイルを変更する
MySQL 8.0.x にはデフォルトでは設定ファイルがないため、自分で作成します。

[20:49:41 root@wangzhike mysql]#vi /usr/local/mysql/my.cnf
次のコンテンツを追加します。
[クライアント]
ポート=3306
ソケット=/tmp/mysql.sock
[mysqld]
ポート=3306
ユーザー = mysql
ソケット=/tmp/mysql.sock
tmpdir = /tmp
キーバッファサイズ=16M
最大許容パケット=128M
デフォルト認証プラグイン=mysql_native_password
オープンファイル制限 = 60000
タイムスタンプの明示的なデフォルト
サーバーID = 1
文字セットサーバー = utf8
連合した
最大接続数 = 1000
最大接続エラー数 = 100000
インタラクティブタイムアウト = 86400
待機タイムアウト = 86400
同期バイナリログ=0
バックログ=100
デフォルトのストレージエンジン = InnoDB
ログスレーブ更新 = 1
[mysqlダンプ]
素早い
[クライアント]
パスワード="123456"
[mysqld-8.0]
sql_mode=伝統的
[mysqladmin]
力
[mysqld]
キーバッファサイズ=16M
サービスmysqldを再起動

:wq!保存して終了します。service mysqld restart を書き込む必要があることに注意してください。デフォルトのパスワードは 123456 です。

その他の操作

[20:53:05 root@wangzhike mysql]#ln -s /usr/local/mysql/my.cnf /etc/my.cnf
#/etcディレクトリへのソフトリンクを追加 [20:53:12 root@wangzhike mysql]#cd
[20:53:13 root@wangzhike ~]#cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
#システム起動時にMysqlを追加 [20:53:21 root@wangzhike ~]#chmod 755 /etc/init.d/mysqld
#実行権限を追加[20:53:28 root@wangzhike ~]#chkconfig mysqld on
#ブートに追加

4. ファイルを編集する

[20:53:39 root@wangzhike ~]#vi /etc/rc.d/init.d/mysqld

#### basedir= を見つけて /usr/local/mysql に変更します
####datadir= を見つけて /data/mysql に変更します

basedir=/usr/local/mysql #MySQL プログラムのインストール パス datadir=/data/mysql #MySQl データベースの保存ディレクトリ

5. 正常に起動する

[20:54:32 root@wangzhike ~]#サービスmysqldを起動します
MySQL を起動しています。'/data/mysql/wangzhike.err' にログを記録しています。
. 成功!#スタートアップ成功

6. 変数を追加する

[20:54:44 root@wangzhike ~]#vi /etc/profile

最後の行に export PATH=$PATH:/usr/local/mysql/bin を追加します。

[20:55:37 root@wangzhike ~]#source /etc/profile #設定をすぐに有効にする

7. ソフトリンクを追加する

[20:55:44 root@wangzhike ~]#ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
[20:55:57 root@wangzhike ~]#ln -s /usr/local/mysql/include/mysql /usr/include/mysql
####上記は、mysql ライブラリ ファイルをシステムのデフォルトの場所 [20:56:02 root@wangzhike ~] にリンクします。#mkdir /var/lib/mysql
[20:56:14 root@wangzhike ~]#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

8. MySQLを起動する

[21:40:14 root@wangzhike ~]#mysql -uroot -p123456
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは9です
サーバーバージョン: 8.0.19 ソース配布

Copyright (c) 2000, 2020, Oracle およびその関連会社。無断複写・転載を禁じます。

OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。

ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。

マイSQL>

これはログインが成功したことを示します。

要約する

CentOS8 に LNMP 環境を導入して mysql-8.0.29 をコンパイルおよびインストールする方法についての記事はこれで終わりです。CentOS8 に LNMP 環境を導入して mysql-8.0.29 をコンパイルおよびインストールする方法についてさらに詳しく知りたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • CentOS8 で MySQL 8.0 をインストールしてデプロイする方法
  • Dockerを使用してMySQL 8.0をデプロイする方法の例
  • MySQLクラスタのDockerデプロイメントの実装
  • Centos サーバーに MySql をデプロイし、Navicat に接続するプロセスの詳細な説明
  • Windows 7 での MySQL 8.0.18 の導入とインストールのチュートリアル
  • Linux 上での MySQL データベースのリモート展開の詳細な手順
  • Django+Mysql+Redis+Gunicorn+NginxのDockerデプロイメントの実装
  • Docker を使用した MySQL のデプロイの詳細説明 (データ永続化)
  • Docker はリモート接続のサンプルコードを実現するために MySQL をデプロイします
  • mysql-8.0.17-winx64 のデプロイメント方法
  • MySQL 5.5 の導入に関する問題

<<:  APPログインインターフェースシミュレーション要求を実装するためのPostmanデータ暗号化と復号化

>>:  MySQL マルチテーブルクエリ例の詳しい解説 [リンククエリ、サブクエリなど]

推薦する

ネイティブjsはショッピングカートのロジックと機能を実装します

この記事の例では、ショッピングカートのロジックと機能を実装するためのjsの具体的なコードを共有してい...

角度に基づくツリー型セカンダリテーブルを実現する

まず効果を見てみましょう: コード: 1.html <div class="user...

jsはシンプルな計算機を実装します

参考までに、ネイティブjsを使用して簡単な計算機(詳細なコメント付き)を実装します。具体的な内容は次...

MySql ログイン パスワードを忘れた場合とパスワードを忘れた場合の解決策

方法1: MySQL では、次のコマンド ラインで MySQL サーバーを起動することにより、アクセ...

HTML+CSS+JavaScript でガールフレンド版のスクラッチ カードを作成します (一度見ればすぐに覚えられます)

誰もがスクラッチ チケットで遊んだことがあると思います。子供の頃、ポケットにお金が入るとすぐに友達に...

SpringBoot プロジェクトの Docker クイック デプロイメントの紹介

1. Dockerをインストールするまず Linux 環境を開き、次のコマンドを入力してインストール...

CSS3 のテキストとフォントの新しい設定

テキストシャドウテキストシャドウ: 水平オフセット 垂直オフセット ぼかし色互換性: IE10+ &...

Angularの親子コンポーネント通信の詳細な説明

目次使用されるAPI簡単な例人.ts親コンポーネントサブコンポーネント効果要約する使用されるAPI ...

HTML 形式の JSON 出力の例 (テスト インターフェース)

JSON データを美しいインデント形式で表示するには、最も単純な JSON.stringify 関...

MySQL のバックアップとリカバリの設計アイデア

背景まず、背景を説明します。ある制約により、当社の現在のバックアップ戦略では、1 日おきにフル バッ...

シンプルなプログレスバーを作成するための HTML+CSS

1. HTMLコードコードをコピーコードは次のとおりです。経験値: <span class=...

Mysql SSHトンネル接続を使用するための基本的な手順

序文セキュリティ上の理由から、MySQL の root ユーザーはローカルにのみログインでき、外部ネ...

MySQL がデータの削除と挿入に非常に時間がかかる問題の解決策

会社の開発者がテスト環境で挿入ステートメントを実行すると、正常に実行されるまでに 10 秒以上かかり...

MySQL データ型の最適化の原則

MySQL は多くのデータ型をサポートしており、高パフォーマンスを得るには適切なデータ型を選択するこ...

Vue バインディング オブジェクト、配列データを動的にレンダリングできないケースの詳細な説明

プロジェクトシナリオ: Dark Horse Vueプロジェクト管理の実践、製品分類の取得、拡張バー...