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) の使用法の概要

推薦する

クールなページング効果を実現するネイティブJS

この記事では、次のような効果を持つ JS ページング効果の例を紹介します。クールだと思いませんか? ...

静的ページと動的ページの実行メカニズムの説明

1. 静的ページとは、Web ページ内に HTML タグのみが含まれるページです。WEB 開発者がこ...

Vue プロジェクトで TS (TypeScript) を使用するための入門チュートリアル

目次1. Typescriptの紹介2. 設定ファイル webpack 設定3. プロジェクトに.t...

mysql 解凍パッケージの基本インストールチュートリアル

新しいコンピューターに変更したので、すべての環境を新しいコンピューター上で設定する必要があります。ふ...

タグのhref属性とonclickイベントの使用例

a タグは主にページ ジャンプを実装するために使用され、これは href 属性または onclick...

Grafana+Prometheus を使用して MySQL サービスのパフォーマンスを監視する

Prometheus (プロメテウスとも呼ばれる) 公式サイト: https://prometheu...

MySQLの再帰問題

MySQL自体は再帰構文をサポートしていませんが、自己接続を通じていくつかの単純な再帰を実現できます...

MySQL: データの整合性

データ整合性は、エンティティ整合性、ドメイン整合性、参照整合性に分けられます。参照整合性:参照整合性...

CSS3で実装された天気アイコンのアニメーション効果

成果を達成する 実装コードhtml <div class="wrapper"...

MySQL スライディングオーダー問題の原理と解決の例分析

この記事では、例を使用して、MySQL スライディング順序問題の原理と解決方法を説明します。ご参考ま...

MySQL可視化ツールNavicatへの接続方法

Navicatをインストールした後次のエラーが発生する場合があります: Client does no...

高品質なJavaScriptコードの書き方

目次1. 読みやすいコード1. 統一コード形式2. マジックナンバーを削除する3. 単一機能原則2....

Zen Coding 簡単で素早いHTMLの書き方

禅コーディングテキストエディタプラグインです。 Zen Coding を使用するテキスト エディター...

CSS3 のメディアクエリと rem レイアウトを組み合わせてモバイル画面に適応

CSS3 構文: (750 ピクセルのデザインの場合、1rem = 100 ピクセル) @media...

HTML リンク アンカー タグと SEO におけるその役割の概要

<a> タグは主に、ハイパーリンクまたはアンカー リンクとも呼ばれるリンクとブックマーク...