Linux に MySQL 8.0.19 をインストールするための詳細な手順と問題解決方法

Linux に MySQL 8.0.19 をインストールするための詳細な手順と問題解決方法

最近Tencent Cloudサーバーを購入し、環境を構築しました。

このメモは、これまで MySQL がインストールされたことのないクリーンなシステムに初めて MySQL をインストールするために使用されます。インストールディレクトリとデータファイルディレクトリを自分で指定します。

Linux システムバージョン: CentOS 7.3 64 ビット

インストール ソース ファイルのバージョン: mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

mysql のインストール場所: /software/mysql

データベースファイルのデータの場所: /data/mysql

注: 混乱を避けるために、ここではコマンドの実行に絶対パスが使用されます。

ファイル内容の#を除いて、ここでの#はすべてLinuxコマンドです

>mysqlはmysqlコマンドです

ステップ:

1. ルートディレクトリにソフトウェアフォルダとデータベースデータファイル /data/mysql を作成します。

#mkdir /ソフトウェア/
#mkdir /data/mysql

2. mysql-8.0.19-linux-glibc2.12-x86_64.tar.xzファイルを/softwareにアップロードします。

--------------------

ここでは、ルーターとテストを含む mysql-8.0.19-linux-glibc2.12-x86_64.tar ファイルをダウンロードしたので、解凍する必要があります。

--------------------
#cd /ソフトウェア/
#xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
#tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar

3. 解凍したフォルダの名前を変更する

#mv /software/mysql-8.0.19-linux-glibc2.12-x86_64/ /software/mysql

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

#グループ追加mysql

#useradd -r -g mysql mysql

5. myqlユーザーをmysqlユーザーグループに関連付ける

#chown -R mysql:mysql /software/mysql/
#chown -R mysql:mysql /data/mysql/
#chown -R mysql /software/mysql/
#chown -R mysql /data/mysql

6. mysqlインストールフォルダmysql/の権限を変更する

#chmod -R 755 /software/mysql/

7. libaio依存パッケージをインストールします。システムにはこの依存パッケージが付属しているのでインストールする必要はありませんが、組み込みの依存パッケージはエラーを報告します。

libaio 依存パッケージが密かに転送されていないか確認する

#yum search libaio

インストールされていない場合は、次のコマンドでインストールできます。

#yum install libaio

8. mysqlコマンドの初期化

#cd /software/mysql/bin
#./mysqld --user=mysql --basedir=/software/mysql --datadir=/data/mysql --initialize

上記のコマンドを実行する際は、1行に特に注意してください。

[注意] root@localhost の一時パスワードが生成されます: o*s#gqh)F4Ck

root@localhost: の後に、MySQL データベースにログインするための一時パスワードを入力します。インストールごとに生成される一時パスワードは異なります。

初期化エラーが次の場合:

共有ライブラリのロード中にエラーが発生しました: libnuma.so.1: 共有オブジェクトを開けません

libnumaは32ビットでインストールされているため、ここでは64ビットが必要であり、次のステートメントを実行することで解決できます。

#yum install numactl.x86_64

実行後にmysqlコマンドを再初期化する

9. MySQLサービスを開始する

# sh /software/mysql/support-files/mysql.server start

MySQL サービスを開始する上記のコマンドは、MySQL 構成ファイルが変更されていないため、エラーを報告します。エラーの内容は次のとおりです。

./support-files/mysql.server: 行 239: my_print_defaults: コマンドが見つかりません

./support-files/mysql.server: 行 259: cd: /usr/local/mysql: そのようなファイルまたはディレクトリはありません

MySQL の起動エラー! MySQL サーバーが見つかりませんでした (/usr/local/mysql/bin/mysqld_safe)

10.Mysql設定ファイルを変更する

#vim /software/mysql/support-files/mysql.server

修正前

if test -z "$basedir"
それから
ベースディレクトリ=/usr/local/mysql
バインドディレクトリ=/usr/local/mysql/bin
テスト -z "$datadir"
それから
データディレクトリ=/usr/local/mysql/data
フィ
sbindir=/usr/local/mysql/bin
libexecdir=/usr/local/mysql/bin
それ以外
bindir="$basedir/bin"
テスト -z "$datadir"
それから
datadir="$basedir/data"
フィ
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
フィ

if test -z "$basedir"
それから
ベースディレクトリ=/software/mysql
バインドディレクトリ=/software/mysql/bin
テスト -z "$datadir"
それから
データディレクトリ=/data/mysql
フィ
sbindir=/software/mysql/bin
libexecdir=/software/mysql/bin
それ以外
bindir="$basedir/bin"
テスト -z "$datadir"
それから
datadir="$basedir/data"
フィ
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
フィ

保存して終了

#cp /software/mysql/support-files/mysql.server /etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

11. my.cnfファイルを変更する

#vi /etc/my.cnf

次の内容をコピーして現在のmy.cnfファイルを置き換えます。

[クライアント]
ビープ音なし
ソケット =/software/mysql/mysql.sock
#パイプ
# ソケット=0.0
ポート=3306
[mysql]
#元の utf8 は UTF8MB3 を指しています。後続のバージョンは UTF8MB4 に変更する必要があります。これを 1 つの手順で実行してみましょう。default-character-set=UTF8MB4
[mysqld]
ベースディレクトリ=/software/mysql
データディレクトリ=/data/mysql
ポート=3306
pid ファイル = /software/mysql/mysqld.pid
#許可テーブルをスキップする
名前解決をスキップ
ソケット = /software/mysql/mysql.sock
文字セットサーバー=utf8
デフォルトのストレージエンジン=INNODB
明示的なタイムスタンプのデフォルト = true
# サーバー ID。
サーバーID=1
最大接続数=2000
#query_cache_size はバージョン 8.0 で削除されたため、コメント #query_cache_size=0 としてください。
テーブルオープンキャッシュ=2000
tmp_table_size=246M
スレッドキャッシュサイズ=300
#各データベース スレッドで使用されるスタック サイズを制限します。デフォルト設定はほとんどのアプリケーションで十分です。thread_stack = 192k
キーバッファサイズ=512M
読み取りバッファサイズ=4M
読み取りバッファサイズ=32M
innodb_data_home_dir = /data/mysql
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=16M
innodb_buffer_pool_size=256M
innodb_log_file_size=128M
innodb_thread_concurrency=128
innodb_autoextend_increment=1000
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
バックログ=80
フラッシュ時間=0
結合バッファサイズ=128M
最大許容パケット=1024M
最大接続エラー数=2000
オープンファイル制限=4161
#query_cache_type はバージョン 8.0 で削除されたため、コメント #query_cache_type=0 としてください。
ソートバッファサイズ=32M
テーブル定義キャッシュ=1400
binlog_row_event_max_size=8K
同期マスター情報=10000
同期リレーログ=10000
同期リレーログ情報=10000
#バッチ挿入データキャッシュサイズは挿入効率を効果的に向上させます。デフォルトは8Mです。
バルク挿入バッファサイズ = 64M
インタラクティブタイムアウト = 120
待機タイムアウト = 120
ログ ビン信頼関数作成者 = 1
sql_mode=NO_ENGINE_SUBSTITUTION、STRICT_TRANS_TABLES
#
# configディレクトリからすべてのファイルをインクルードする
#
!includedir /etc/my.cnf.d

保存して終了

12. MySQLを起動する

#/etc/init.d/mysqld start

新しいバージョンのインストール パッケージではエラーが報告されます。エラーの内容は次のとおりです。

MySQL を起動しています。'/data/mysql/SZY.err' にログを記録しています。
2018-07-02T10:09:03.779928Z mysqld_safe ファイル /usr/local/mysql/bin/mysqld
存在しないか実行できません。mysql インストールに cd してください。
ディレクトリに移動し、次のようにしてそこからこのスクリプトを再起動します。
./bin/mysqld_safe&
詳細については、http://dev.mysql.com/doc/mysql/en/mysqld-safe.html を参照してください。
エラー! サーバーは PID ファイル (/software/mysql/mysqld.pid) を更新せずに終了しました。

新しいバージョンの MySQL セキュア ブート インストール パッケージは、パス /usr/local/mysql のみを認識するためです。

解決:

方法1: ソフトリンクを作成する

#cd /usr/local/mysql
#ln -s /sofware/mysql/bin/myslqd mysqld

方法 2: mysqld_safe ファイルを変更する (これは強迫性障害の学生に推奨されており、私もこれを使用しています)

# vim /software/mysql/bin/mysqld_safe

すべての /usr/local/mysql を /software/mysql に変更します

保存して終了します。 (このファイルをコピーして変更し、置き換えることができます)

13. MySQLにログインする

ここにログインできません。ブロックされています。次のようなエラーが表示されます:

エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワード使用: NO)。

https://cloud.tencent.com/developer/article/1188636 を参照してください。

この操作を次のように変更します。

1. MySQLデータベースを停止する

/etc/init.d/mysqld stop

(または、プロセスを強制終了するには、単に kill -9 [PID] と入力します)

2. 次のコマンドを実行します

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

3. MySQLデータベースにrootとしてログインする

mysql -u root mysql

4. ルートパスワードを更新する

MySQL の最新バージョンの場合は、次の SQL を使用してください。

mysql> ALTER USER 'root'@'localhost' が 'newpassword' によって mysql_native_password で識別されます。

5. 権限を更新する

mysql> FLUSH PRIVILEGES;

6. MySQLを終了する

mysql>終了

7. MySQLを再起動する

/etc/init.d/mysqld restart

8. ルートユーザーを使用してmysqlに再度ログインします。

mysql -uroot -p
 パスワードを入力してください: <新しいパスワード newpassword を入力してください>
-------------------------------------------------------------------------------------------------------------------------------
#/software/mysql/bin/mysql -u ルート –p

14. 一時パスワードを入力します。一時パスワードは、8 番目の root@localhost の後の内容です。

15. MySQLログインパスワードを変更する

>mysql パスワードを password('root') に設定します。
>mysql は、'root' で識別される root@'%' に *.* のすべての権限を付与します。
>mysql フラッシュ権限;

16. 完了。この時点でMySQLのログイン名はroot、ログインパスワードはrootです。

要約する

Linux に MySQL 8.0.19 をインストールするための詳細な手順と問題解決方法については、これで終わりです。Linux に MySQL 8.0.19 をインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux システム MySQL8.0.19 クイックインストールと構成チュートリアル図
  • Linux (Centos7) に mysql8.0.18 をインストールするチュートリアル図
  • MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル (Linux)
  • Linux での mysql-5.7.28 インストール チュートリアル
  • Linux環境にMySQLデータベースをインストールする詳細なチュートリアル

<<:  JavaScript CollectGarbage 関数の例

>>:  Linux 論理ボリューム管理 (LVM) の使用法の概要

推薦する

Linux 仮想マシンの IP アドレスを変更し、ゲートウェイを確認し、ネットワーク環境を構成する方法に関するチュートリアル

仮想マシンの IP アドレスを変更します。 次のインターフェイスに入り、サブネット IP を直接変更...

Docker 大規模プロジェクトのコンテナ化変革

仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...

Vue 天気予報入門

この記事では、参考までに天気予報を実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

MySQL 5.7.21 解凍版インストール Navicat データベース操作ツールインストール

MySQL解凍版とNavicatデータベース操作ツールのインストールは、以下のとおりです。 1. M...

MySQL データベースにおける高同時実行性の問題を解決する方法

序文スタートアップ企業が最初はモノリシック アプリケーションを主要なアーキテクチャとして使用し、通常...

CSS グラデーション効果の概要 (線形グラデーションと放射状グラデーション)

線形グラデーション 背景画像: linear-gradient(方向、開始色、中間色1、中間色2、....

バックエンドから返される 100,000 個のデータをフロントエンドでより適切に表示するにはどうすればよいですか?

目次予備作業バックエンド構築フロントエンドページダイレクトレンダリングsetTimeout ページン...

CocosCreatorゲームにおける魚群アルゴリズムの詳細な説明

序文最近CocosCreatorを学びたいと思ったので、エディターをダウンロードして起動しました。誰...

MySQL インデックスが失敗するいくつかの状況の概要

1. インデックスはnull値を保存しないより正確に言うと、単一列インデックスには null 値は格...

ディスク容量不足による MySQL レプリケーション障害の解決方法

目次ケースシナリオ問題を解決するまとめケースシナリオ本日、オンラインで問題が発見されました。監視範囲...

Nodejs は JSON 文字列を JSON オブジェクトに変換するエラー解決法

JSON 文字列を JSON オブジェクトに変換するにはどうすればいいですか? JSON.parse...

docker+jenkins+node.js の自動デプロイメント環境をゼロから構築する方法

このケースはCentOS 7システムに基づいていますDockerの使用経験がある人に適していますLi...

javascript:void(0) の意味と使用例

voidキーワードの紹介まず、void キーワードは JavaScript で非常に重要なキーワード...

HTML 選択ボックスのプレースホルダーの作成に関する問題

テキスト入力でプレースホルダーを使用していますが、問題なく動作します。しかし、選択ボックスにはプレー...

CSS flex 複数列レイアウト

基本的な3列レイアウト 。容器{ ディスプレイ: フレックス; 幅: 500ピクセル; 高さ: 20...