CentOS 6.8 に MySQL 8.0.18 をインストールするチュートリアルの簡単な分析 (RPM 方式)

CentOS 6.8 に MySQL 8.0.18 をインストールするチュートリアルの簡単な分析 (RPM 方式)

今日は、CentOS 6.8 サーバーに MySQL 8.0.18 をインストールする方法を記録します。さっそく、本題に入りましょう。

1. CentOS 6.8に付属するMySQLをアンインストールする

まず、CentOS 6.8 サーバーに組み込まれている MySQL をアンインストールします。コマンドラインに次のコマンドを入力して、CentOS 6.8 サーバーに組み込まれている MySQL を表示します。

[root@binghe151 src]# rpm -qa | grep -i mysql    
mysql-libs-5.1.73-7.el6.x86_64

ご覧のとおり、CentOS 6.8 サーバーにはデフォルトで mysql-libs-5.1.73-7.el6.x86_64 がインストールされています。次に、以下に示すように、mysql-libs-5.1.73-7.el6.x86_64 をアンインストールします。

[root@binghe151 src]# rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps 
[root@binghe151 ソース]#

以下に示すように、CentOS 6.8 サーバーにインストールされている MySQL を再度確認します。

[root@binghe151 src]# rpm -qa | grep -i mysql
[root@binghe151 ソース]#

これは、CentOS 6.8 サーバーにインストールされた MySQL が正常にアンインストールされたことを示します。

2. MySQL依存環境をインストールする

MySQL を正式にインストールする前に、まず以下に示すように、MySQL が依存する基本環境をインストールする必要があります。

yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype* make gcc-c++ cmake bison-devel ncurses-devel bison perl perl-devel perl perl-devel net-tools* numactl*

3. MySQLユーザーを追加する

mysql ユーザーを追加するには、コマンド ラインで次のコマンドを実行します。

グループ追加mysql
ユーザー追加 -g mysql mysql

4. MySQL RPMインストールパッケージをダウンロードしてインストールする

まず、CentOS 6.8 サーバーのコマンドラインで次のコマンドを実行して、MySQL 8.0.18 の RPM インストール パッケージをダウンロードします。

https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-1.el6.x86_64.rpm-bundle.tar をダウンロードします。

次に、ダウンロードしたMySQL 8.0.18のRPMインストールパッケージを確認します。

[root@binghe151 src]# ll
合計 744876
-rw-r--r--。1 ルート ルート 762746880 11月18日 14:32 mysql-8.0.18-1.el6.x86_64.rpm-bundle.tar

次に、ダウンロードしたインストール パッケージを以下のように解凍します。

[root@binghe151 src]# tar xvf mysql-8.0.18-1.el6.x86_64.rpm-bundle.tar 
mysql-コミュニティクライアント-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティテスト-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティサーバー-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティ-ライブラリ-compat-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティ-共通-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティ開発-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティライブラリ-8.0.18-1.el6.x86_64.rpm

次に、順番にインストールします

mysql-コミュニティ-共通-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティライブラリ-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティクライアント-8.0.18-1.el6.x86_64.rpm
mysql-コミュニティサーバー-8.0.18-1.el6.x86_64.rpm

インストール中は、上記の順序に厳密に従う必要があります。

まず、以下に示すように、 mysql-community-common-8.0.18-1.el6.x86_64.rpmをインストールします。

[root@binghe151 src]# rpm -ivh mysql-community-common-8.0.18-1.el6.x86_64.rpm
警告: mysql-community-common-8.0.18-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
 1:mysql-community-common ##################################################### [100%]

次に、以下に示すように、mysql-community-libs-8.0.18-1.el6.x86_64.rpm をインストールします。

[root@binghe151 src]# rpm -ivh mysql-community-libs-8.0.18-1.el6.x86_64.rpm
警告: mysql-community-libs-8.0.18-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
 1:mysql-community-libs ##################################################### [100%]

次に、以下に示すように、 mysql-community-client-8.0.18-1.el6.x86_64.rpmをインストールします。

[root@binghe151 src]# rpm -ivh mysql-community-client-8.0.18-1.el6.x86_64.rpm
警告: mysql-community-client-8.0.18-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
 1:mysql-community-client ##################################################### [100%]

最後に、以下に示すように、mysql-community-server-8.0.18-1.el6.x86_64.rpm をインストールします。

[root@binghe151 src]# rpm -ivh mysql-community-server-8.0.18-1.el6.x86_64.rpm
警告: mysql-community-server-8.0.18-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################################ [100%]
 1:mysql-community-server ################################################### [100%]

mysql-community-server-8.0.18-1.el6.x86_64.rpm のインストール時に、以下に示すようにエラーが発生する場合があります。

[root@binghe151 src]# rpm -ivh mysql-community-server-8.0.18-1.el6.x86_64.rpm
警告: mysql-community-server-8.0.18-1.el6.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
エラー: 依存関係に失敗しました:
  mysql-community-server-8.0.18-1.el6.x86_64 には libnuma.so.1()(64 ビット) が必要です
  mysql-community-server-8.0.18-1.el6.x86_64 には libnuma.so.1(libnuma_1.1)(64 ビット) が必要です
  mysql-community-server-8.0.18-1.el6.x86_64 には libnuma.so.1(libnuma_1.2)(64 ビット) が必要です

ご覧のとおり、libnuma ライブラリがありません。次のコマンドを実行して libnuma をインストールします。

yum install numactl* -y

コマンドを実行した後、mysql-community-server-8.0.18-1.el6.x86_64.rpm を再度インストールします。

5. MySQLデータを初期化する

まず、MySQL の実行に関する公式の MySQL 制限について説明します。

MySQL 8.x では、データを初期化するには、データベース ディレクトリとファイルの所有者が mysql ログイン アカウントであることを確認する必要があります。 mysqld サービスを root として実行している場合は、--user オプションを指定して次のコマンドを実行してこれを確認する必要があります。

シェル> bin/mysqld --initialize --user=mysql
シェル> bin/mysqld --initialize-insecure --user=mysql

mysql アカウントとしてログインしてプログラムを実行する場合は、以下に示すように、コマンドから --user オプションを削除できます。

シェル> bin/mysqld --initialize
シェル> bin/mysqld --initialize-insecure

MySQL の実行に関する上記の公式 MySQL 制限を通じて、結論付けることができます。

CentOS 6.8 サーバーに root ユーザーとしてログインしている場合は、次のコマンドを実行できます。

mysqld --initialize --user=mysql
mysqld --initialize-insecure --user=mysql

CentOS 6.8 サーバーに mysql ユーザーとしてログインすると、次のコマンドを実行できます。

mysqld --初期化
mysqld --initialize-insecure

CentOS 6.8 サーバーへのログインには root アカウントを使用するため、データベースの初期化時に以下のコマンドを実行します。

mkdir -p /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

注: ここでは、mysqld --initialize コマンドを実行するときに MySQL インストール ディレクトリを指定しました。 MySQL のインストール プロセス中に、MySQL インストール ディレクトリを指定することをお勧めします。 /usr/local/mysql ディレクトリの下にデータ ディレクトリがある場合、初期化は失敗します。/usr/local/mysql の下にデータ ディレクトリがないことを確認する必要があります。

6. MySQLを起動する

CentOS 6.8 サーバーのコマンド ラインで次のコマンドを入力して、MySQL サービスを開始します。

[root@binghe151 src]# サービス mysqld を開始
mysqld を起動しています: 
[ わかりました ]

MySQL を起動すると、MySQL ルート アカウントの一時ログイン パスワードが生成されます。このパスワードは、/var/log/mysqld.log ファイルで確認できます。以下に示すように、vim エディターを使用して /var/log/mysqld.log ファイルを開きます。

ログファイル 
2019-11-18T08:16:08.162464Z 0 [システム] [MY-013169] [サーバー] /usr/sbin/mysqld (mysqld 8.0.18) プロセス 2111 としてサーバーの初期化が進行中です
2019-11-18T08:16:12.451542Z 5 [注記] [MY-010454] [サーバー] root@localhost の一時パスワードが生成されました: -8cagKkdK#5G
2019-11-18T08:17:13.269505Z 0 [システム] [MY-010116] [サーバー] /usr/sbin/mysqld (mysqld 8.0.18) がプロセス 2378 として開始されました
2019-11-18T08:17:16.568836Z 0 [警告] [MY-010068] [サーバー] CA 証明書 ca.pem は自己署名されています。
2019-11-18T08:17:16.642494Z 0 [システム] [MY-010931] [サーバー] /usr/sbin/mysqld: 接続準備完了。バージョン: '8.0.18' ソケット: '/var/lib/mysql/mysql.sock' ポート: 3306 MySQL コミュニティ サーバー - GPL。
2019-11-18T08:17:16.652000Z 7 [警告] [MY-013360] [サーバー] プラグイン sha256_password が報告されました: ''sha256_password' は非推奨であり、将来のリリースで削除される予定です。代わりに caching_sha2_password を使用してください。
d'
2019-11-18T08:17:16.801986Z 0 [システム] [MY-011323] [サーバー] X プラグインが接続準備完了。ソケット: '/var/run/mysqld/mysqlx.sock' バインド アドレス: '::' ポート: 33060

次のコード行を見つけます。

2019-11-18T08:16:12.451542Z 5 [注記] [MY-010454] [サーバー] root@localhost の一時パスワードが生成されました: -8cagKkdK#5G

MySQL の起動時に生成される一時ログイン パスワードが -8cagKkdK#5G であることがわかります。

7. MySQLにログインする

以下に示すように、一時パスワードを使用して MySQL にログインします。

[root@binghe151 src]# mysql -uroot -p-8cagKkdK#5G
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは9です
サーバーバージョン: 8.0.18
Copyright (c) 2000, 2019, Oracle およびその関連会社。無断複写・転載を禁じます。
OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
マイSQL>

この時点で、MySQL コマンドラインで SQL ステートメントを実行するとエラー メッセージが表示され、以下に示すようにパスワードをリセットする必要があります。

mysql> データベースを表示します。
エラー 1820 (HY000): このステートメントを実行する前に、ALTER USER ステートメントを使用してパスワードをリセットする必要があります。
mysql> mysql を使用します。
エラー 1820 (HY000): このステートメントを実行する前に、ALTER USER ステートメントを使用してパスワードをリセットする必要があります。
マイSQL>

次に、MySQL ルート アカウントのパスワードを以下のように変更します。

mysql> ALTER USER 'root'@'localhost' が 'root' によって識別されます。
クエリは正常、影響を受けた行は 0 行 (0.03 秒)
mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

次に、MySQL コマンドラインに exit コマンドを入力して MySQL を終了します。以下に示すように、変更した root パスワードを使用して MySQL に再度ログインします。

mysql>終了
さよなら
[root@binghe151 src]# mysql -uroot -proot
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは10です
サーバーバージョン: 8.0.18 MySQL コミュニティサーバー - GPL
Copyright (c) 2000, 2019, Oracle およびその関連会社。無断複写・転載を禁じます。
OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
マイSQL>

これは、MySQL ルート アカウントのパスワードが正常に変更されたことを示します。

次に、以下に示すように、MySQL コマンドラインで SQL ステートメントを再度実行します。

mysql> データベースを表示します。
+--------------------+
| データベース |
+--------------------+
| 情報スキーマ |
|mysql |
| パフォーマンススキーマ |
|システム|
+--------------------+
セット4行(0.36秒)
mysql> USE mysql;
テーブル名と列名の補完のためのテーブル情報の読み取り
-Aでこの機能をオフにすると起動が速くなります。
データベースが変更されました
マイSQL>

MySQL ルート アカウントのパスワードを変更すると、MySQL コマンド ラインで SQL ステートメントを正しく実行できることがわかります。

8. rpmを使用してMySQLのデフォルトディレクトリをインストールする

1. データベースディレクトリ

/var/lib/mysql/

2. 設定ファイル

/usr/share/mysql(mysql.server命令及配置文件)

3. 関連コマンド

/usr/bin(mysqladmin mysqldump等命令)

4. 起動スクリプト

/etc/rc.d/init.d/(啟動腳本文件mysql的目錄)

9. my.cnfファイルを設定する

MySQL 8.0 にはデフォルトで my.cnf がありません。/etc ディレクトリに my.cnf ファイルを手動で作成し、以下のように MySQL ディレクトリを指定するコマンドでデータを初期化することができます。

mkdir -p /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
次に、my.cnf ファイルを以下のように設定します。
[クライアント]
ポート = 3306
#実際の状況に応じて mysql.sock 設定を調整します socket = /tmp/mysql.sock
[mysqld]
#MySQLサービスの一意のID 各MySQLサービスIDは一意である必要があります server-id = 1
#デフォルトのサービスポート番号は3306です
ポート = 3306
#mysql インストール ルート ディレクトリ basedir = /usr/local/mysql
#mysql データファイルの場所 datadir = /usr/local/mysql/data
#pid
pid ファイル = /usr/local/mysql/mysql.pid
#ソケットファイルが配置されているディレクトリを設定します socket = /tmp/mysql.sock
#一時ディレクトリを設定する tmpdir = /tmp
# ユーザー user = mysql
# IPネットワークセグメントへのアクセスを許可するbind-address = 0.0.0.0
# パスワードログインをスキップ#skip-grant-tables
#主にMyISAMストレージエンジンに使用されます。複数のサーバーが1つのデータベースに接続されている場合は、次の内容をコメントアウトすることをお勧めします skip-external-locking
#クライアントログインの確認にはホスト名ではなくIPアドレスのみを使用します skip_name_resolve = 1
#トランザクション分離レベル、デフォルトは繰り返し読み取り、MySQL のデフォルトの繰り返し読み取りレベル (このレベルでは、パラメータにギャップ ロックが多く存在し、パフォーマンスに影響する可能性があります)
transaction_isolation = READ-COMMITTED
#データベースのデフォルトの文字セット、主流の文字セットはいくつかの特別な絵文字をサポートしています(特別な絵文字は4バイトを占有します)
文字セットサーバー = utf8mb4
#データベースの文字セットはいくつかのソートルールに対応しています。character-set-server collat​​ion-server = utf8mb4_general_ci に対応している必要があることに注意してください。
#文字化けを防ぐためにクライアントがmysqlに接続するときに文字セットを設定します init_connect='SET NAMES utf8mb4'
#SQL文の大文字と小文字を区別するかどうか、1は区別しないlower_case_table_names = 1
#最大接続数 max_connections = 400
#接続エラーの最大数 max_connect_errors = 1000
#TIMESTAMP NOT NULLが明示的に宣言されていない場合、NULL値が許可されます。explicit_defaults_for_timestamp = true
#SQLデータパケットサイズ。BLOBオブジェクトがある場合は1Gに変更することをお勧めします。
最大許容パケット = 128M
#MySQL 接続は、一定時間 (秒単位) アイドル状態が続くと強制的に閉じられます #MySQL のデフォルトの wait_timeout 値は 8 時間であり、有効にするには interactive_timeout パラメータを同時に設定する必要があります interactive_timeout = 1800
待機タイムアウト = 1800
#内部メモリ一時テーブルの最大値は128Mに設定されています。
#たとえば、大量のデータをグループ化したり順序付けたりするときに一時テーブルが使用されることがあります。
#この値を超えると、テーブルはディスクに書き込まれ、システム IO の負荷が増加します。tmp_table_size = 134217728
最大ヒープテーブルサイズ = 134217728
#MySQL のキャッシュクエリ結果セット機能を無効にします #後でビジネス状況のテストに基づいて有効にするかどうかを決定します #ほとんどの場合、次の2つの項目をオフにします query_cache_size = 0
クエリキャッシュタイプ = 0
#データベースエラーログファイル log_error = error.log
#遅いクエリのSQLログ設定 slow_query_log = 1
slow_query_log_file = slow.log
#インデックスを使用しないSQLをチェックする
ログクエリがインデックスを使用していない = 1
#log_queries_not_using_indexes をオンにすると、遅い SQL の頻度と 1 分あたりのレコード数が記録されます log_throttle_queries_not_using_indexes = 5
#スレーブとして使用する場合に有効です。スレーブ レプリケーション内の遅い SQL ステートメントも記録されます。log_slow_slave_statements = 1
#スロークエリが実行される秒数。記録されるにはこの値に達する必要があります long_query_time = 8
#遅いクエリとしてマークするには、取得される行数がこの値に達する必要があります min_examined_row_limit = 100
#mysql binlog ログファイルの有効期限。有効期限が切れると自動的に削除されます。expire_logs_days = 5

要約する

上記は、編集者が紹介した CentOS6.8 に MySQL8.0.18 をインストールするチュートリアルです (RPM 方式)。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Centos6.8 に python3.7 をインストールするときに _ssl をインポートできない問題の解決方法
  • Alibaba Cloud ECS centos6.8 に MySql5.7 をインストールして設定するチュートリアル
  • VirtualBox に Centos6.8 をインストールする際の E_INVALIDARG (0x80070057) の解決方法
  • CentOS6.8のFTPインストールとユーザー追加の詳しい説明
  • CentOS6.8 は cmake を使用して MySQL5.7.18 をインストールします。
  • CentOS7 は yum を使用して mysql 8.0.12 をインストールします
  • CentOS に MySQL 8.0 をインストールして設定するための詳細な手順
  • CentOS 7.4 にソースコードから MySQL 8.0 をインストールするための詳細なチュートリアル
  • Centos7 への mysql8.0rpm のインストール チュートリアル
  • CentOS 6.4 MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル

<<:  Vue+js はビデオのフェードインとフェードアウト効果を実現します

>>:  nginx をシャットダウン/再起動/起動する方法

推薦する

Kubernetesでポッドを作成する方法

目次ポッドを作成するには? kubectl ツールポッドを作成するには?前回の記事では、コンテナとポ...

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

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

MySQL で group by を使用すると常にエラー 1055 が発生します (推奨)

MySQL で group by を使用すると常にエラー 1055 が発生するため、原因を確認する...

CSS3で実装された読み込みアニメーション

成果を達成する実装コード <h1>123WORDPRESS.COM</h1>...

nginx で HSTS を有効にしてブラウザを HTTPS アクセスにリダイレクトする方法の詳細な説明

前回の記事では、https を使用したローカルノードサービスアクセスを実装しました。前回の記事の効果...

MySQL 制約の種類と例

制約制約によりデータの整合性と一貫性が確保される制約はテーブルレベルの制約と列レベルの制約に分けられ...

CSS マージンの重複と解決策の探索の詳細な説明

最近、CSS 関連の知識ポイントをいくつか見直し、CSS における典型的なマージンの重なりの問題を整...

モバイル端末におけるビューポートの具体的な使用法についての簡単な説明

目次1. 基本概念1.1 2種類のピクセル1.2 3つのビューポート2. ビューポート設定3. 1回...

HTML ハイパーリンク スタイル (4 つの異なる状態) の設定例

コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...

LinuxでRPMを使用してmysql5.7.17をインストールする

LinuxでのMySQL5.7 rpmのインストール方法を参考までに記録します。具体的な内容は以下の...

jQueryは画像追従効果を実現します

この記事では、画像フォロー効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...

MySQL バッチ SQL 挿入パフォーマンス最適化の詳細な説明

大量のデータを扱うシステムの中には、クエリ効率の低さやデータの保存時間の長さといったデータベースの問...

テーブル関連の配置とJavascript操作テーブル、tr、td

適切に機能するテーブル プロパティ設定:コードをコピーコードは次のとおりです。 <テーブル セ...

WordPress実験を実装するための3つの仮想マシンのKVM展開の詳細説明

1. KVM の概要カーネルベースの仮想マシンの略称は、Linux 2.6.20 以降のすべての主要...

IE6/IE7/IE8/IE9/FF 向け CSS ハック (概要)

IE8.0の正式版をインストールしたので、基本的なCSS HACKをいくつかまとめてみました。We...