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

推薦する

MySQL スケジュールタスク例チュートリアル

序文MySQL 5.1.6 以降、非常にユニークな機能であるイベント スケジューラが追加されました。...

概要ページでのフロートとクリアフロート

1. フロート: 主な目的は、テキストを画像の周囲に折り返す効果を実現することです。また、複数列レイ...

MySQL (5.6 以下) の JSON 解析の詳細な例

MySQL(5.6以下)はjsonを解析します #json 解析関数 DELIMITER $$ `j...

MySQL に絵文字表現を挿入できない問題の解決方法

序文最近この問題に遭遇するまで、私は UTF-8 が文字セットの問題に対する普遍的な解決策だと考えて...

Apacheドメイン名設定の落とし穴の詳細な説明

私はApacheを使ったことがありません。仕事を始めてからはずっとnginxを使っていました(運用保...

Linux で rpm パッケージを見つけるために CD をマウントする方法

前面に書かれたLinux を使用する際にソフトウェアをインストールする必要がある場合があります。もち...

Linux で Hadoop クラスターをインストールするための詳細な手順

目次1. usrディレクトリにHadoopディレクトリを作成し、インストールパッケージをそのディレク...

背景位置パーセンテージ原則の詳細な説明

今日、誰かがコードを調整するのを手伝っていたとき、次のようなスタイルを見つけました。 背景位置: 5...

MySQL5.7.03 上位バージョンから MySQL 5.7.17 への置き換えインストール プロセスと見つかった問題の解決策

1. インストール方法は? 1. [実行] -> [cmd] と入力して、小さな黒いウィンドウ...

Vue ElementUI フォームのフォーム検証

フォーム検証は、フロントエンド開発プロセスで最もよく使用される機能の 1 つです。私の個人的な仕事経...

Vueコンポーネント化の基本的な使用方法の詳細

目次1. コンポーネント化とは何ですか? 2. 基本的な使い方序文:場合によっては、HTML 構造化...

Vueフォームバインディングとコンポーネントの詳細な説明

目次1. 双方向データバインディングとは1. データの双方向バインディングを実装する必要があるのはな...

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...

mysql データはどこに保存されますか?

MySQLデータベースの保存場所: 1. MySQLがMyISAMストレージエンジンを使用する場合...

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...