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 をシャットダウン/再起動/起動する方法

推薦する

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...

Centos7 に yum を使用して MySQL をインストールし、リモート接続を実現する方法

Centos7はyumを使用してMySQLをインストールし、リモート接続を実現する方法です。MySQ...

JSX を使用してカルーセル コンポーネントを実装する方法 (フロントエンドのコンポーネント化)

JSX を使用してコンポーネント システムを構築する前に、例を使用してコンポーネントの実装原理とロ...

入力ボックスのコンテンツプロンプトと非表示機能を実装する JavaScript

入力ボックスが小さい場合、内容を入力した後に、入力内容が拡大されたプロンプト ボックスを表示したいこ...

MySQL データベース テーブルとデータベース パーティショニング戦略

まず、テーブルを分割する必要がある理由について説明します。データシートが数百万に達すると、1 回のク...

iframeを透明にするパラメータ

<iframe src="./ads_top_tian.html" all...

MySQL アーキテクチャのナレッジポイントの概要

1. データベースとデータベースインスタンスMySQL の研究では、データベースとデータベース イン...

MySQL はどのようにしてマルチバージョンの同時実行性を実現するのでしょうか?

目次MySQL マルチバージョン同時実行1. マルチバージョン同時実行制御1. 一貫した読み取り2....

Vueは動的クエリルール生成コンポーネントを実装します

1. 動的クエリルール動的クエリルールは、おおよそ次の図のようになります。ユーザのカスタマイズに応じ...

JSでユーザーを追跡する方法

目次1. 同期AJAX 2. 非同期AJAX 3. ユーザーのクリックを追跡する4. リバウンドトラ...

Vue+elementUI コンポーネントは、折りたたみ可能な動的レンダリングのマルチレベル サイドバー ナビゲーションを再帰的に実装します。

かなり前に実装された機能ですが、クリックすると選択したメニュー項目の背景色が白くなることに気付きまし...

Linux のパスワードを紛失した場合にリセットする方法

1. スタートアップメニューでは、カーソルを最初の行に移動します - eを押します 2. UTF-8...

Nginx を使用して rtmp ライブ サーバーを実行する方法

今回は、コンピューターや携帯電話用の rtmp ライブ ブロードキャスト サーバーを設定し、ライブ ...

Element-ui の組み込み 2 つのリモート検索 (ファジークエリ) の使用方法の説明

問題の説明フロントエンドリモート検索やファジークエリと呼ばれる種類のクエリがあります。 Ele.me...