mysql のインストールおよび構成ガイド: CentOS でバイナリ解凍パッケージを使用して MySQL 8 をインストールする詳細な手順

導入

  MySQLは広く使用されているリレーショナル データベース管理システムですが、この記事では MySQL 8 をバイナリ解凍パッケージを使用して CentOS 7.6 にインストールする方法を紹介します。

1. 準備

1.1 ハードウェア要件

  • プロセッサ: データベース操作の要求を確実に処理できるように、2 GHz 以上のプロセッサを推奨します。
  • メモリ: MySQL を効率的に実行できるように、少なくとも 2 GB のメモリ (4G 以降を推奨)。実際に必要なメモリは、データベースのサイズと負荷によって異なります。データベースが大きい場合やビジーなデータベースの場合は、より多くのメモリが必要になる場合があります。
  • ストレージ スペース: 少なくとも 20 GB のディスク スペース (40 GB の空きスペースを推奨)。MySQL および関連データを保存するのに十分なディスク スペースがあることを確認してください。これには、MySQL インストール ファイル、データ ファイル、ログ ファイル、バックアップ ファイルのストレージが含まれます。

1.2 システム要件

  • オペレーティング システム: オペレーティング システムが CentOS 7.6 以降であることを確認してください。CentOS のバージョンを確認するには、次のコマンドを実行します。cat /etc/centos-release

  • インターネット接続: MySQL 8 バイナリと必要な依存関係をダウンロードするには、サーバーに信頼できるインターネット接続があることを確認してください。次のコマンドを使用してネットワーク接続をテストできます。ping www.mysql.com外部ネットワークに正常に接続できることを確認します。

  • ユーザー権限: インストールを続行する前に、ソフトウェアをインストールし、システム構成を実行するための十分な権限があることを確認してください。管理者権限を持つユーザーでインストールすることをお勧めします。sudo コマンドを使用すると、特権が必要な操作を実行できます。

  • glibc version : ダウンロードに必要なシステム パラメータ。getconf GNU_LIBC_VERSIONまたはldd --versionコマンドを使用して照会できます。

[root@localhost ~]# getconf GNU_LIBC_VERSION
glibc 2.17
[root@localhost ~]# ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
[root@localhost ~]# 

  • CPU アーキテクチャ: ダウンロード時に使用する必要があるシステム パラメータは、uname -mまたはarchコマンドを通じて照会できます。
[root@localhost ~]# uname -m
x86_64
[root@localhost ~]# arch
x86_64
[root@localhost ~]# 

1.3 インストールの依存関係

  MySQL 8 のバイナリ解凍パッケージをインストールする前に、MySQL が正常に実行できるようにいくつかの依存関係をインストールする必要があります。一般的な依存関係をいくつか示します。

  • libaio : MySQL は非同期入出力操作を処理するために libaio ライブラリを必要とします
  • umactl : システムに NUMA (Non-Uniform Memory Access) アーキテクチャが搭載されている場合は、NUMA システム上の MySQL のパフォーマンスを最適化するために umactl ライブラリをインストールすることをお勧めします。
  • zlib : MySQL は zlib ライブラリを使用してデータの圧縮および解凍機能を提供します
  • openssl : MySQL は暗号化とセキュリティに openssl ライブラリを使用します
  • cmake : MySQL をインストールするときは、cmake ツールを使用してビルドおよびコンパイルする必要があります。

以下のコマンドを実行して上記プラグインをアップデートします(合計約920万個、それほど時間はかかりません)

yum -y install libaio numactl zlib openssl cmake 

1.4 MariaDB の削除

  MariaDB は、MySQL のブランチであり、主にオープン ソース コミュニティによって保守されている CentOS にデフォルトでインストールされます。CentOS 7 以降のバージョンでは、MySQL データベースは使用されなくなり、MariaDB データベースが使用されます。まず組み込みの MariaDB をアンインストールしてから、MySQL をインストールして、MySQL のインストール プロセス中の潜在的な競合や構成の問題を回避します。

# 搜索
rpm -qa|grep mariadb
# 移除,文件名对应上面搜索出来的名字
rpm -e --nodeps {文件名}

以下に示すように

[root@localhost ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
[root@localhost ~]# rpm -qa|grep mariadb
[root@localhost ~]# 

2 ダウンロード

2.1 公式サイトにログインする

ダウンロードページにログインします
ここに画像の説明を挿入

2.2 対応するバージョンをダウンロードする

前のシステム パラメータのglibc バージョンCPU アーキテクチャに従って、対応するダウンロード オプションを選択します。

私と同じバージョンをお持ちの場合は、私の接続を使用して
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.17-x86_64-minimal を直接ダウンロードできます。タール

ここに画像の説明を挿入
ログインをスキップし、直接ダウンロードを選択してください
ここに画像の説明を挿入

3 インストール

3.1 ファイルのアップロード

ダウンロードしたファイルをサービスにアップロードします。ここでは /home にダウンロードし、ファイル情報を出力します。

[root@localhost home]# ll
total 425872
-rw-r--r--. 1 root root 425871360 May 28 13:13 mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar
[root@localhost home]# 

3.2 ファイルを解凍する

  1. 圧縮パッケージを解凍して実行するとtar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar、以下の3つのファイルが解凍されます。

mysql-test-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz: mysql サービスの単体テスト、回帰テスト、および適合テストに使用されるテスト フレームワーク。単体テストを実行し、新しい単体テストを作成する機能を提供します。ツール
mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz: mysql をインストールするために必要なファイル
mysql-router-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz:公式 軽量のミドルウェアが提供されており、主な機能はアプリケーションと MySQL サーバー間の透過的なルーティングを提供することであり、高可用性 (HA) ソリューションの構成要素です。

  1. メイン ファイルを解凍し、 を実行してtar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz、フォルダーmysql-8.0.33-linux-glibc2.17-x86_64-minimal を解凍します。
  2. ディレクトリを /usr/local/mysql に移動し (好みに応じて変更できます)、実行します。mv mysql-8.0.33-linux-glibc2.17-x86_64-minimal /usr/local/mysql

3.2 インストールコマンド

3.2.1 インストールコマンドの実行

/usr/local/mysql ディレクトリに入り、root 権限を使用して次のインストール コマンドを 1 行ずつ実行します (コマンドについては 3.2.2 で説明します)。

1. groupadd mysql
2. useradd -r -g mysql -s /bin/false mysql
3. mkdir mysql-files
4. chown mysql:mysql mysql-files
5. chmod 750 mysql-files
6. bin/mysqld --initialize --user=mysql
7. bin/mysql_ssl_rsa_setup
8. bin/mysqld_safe --user=mysql &

実行プロセスは次のとおりです. ステップ 6 の初期化を実行するときにプログラムがランダムなパスワードを生成することがわかります. これは後でログインするときに使用されます。

[root@localhost home]# cd /usr/local/mysql/
[root@localhost mysql]# groupadd mysql
[root@localhost mysql]#  useradd -r -g mysql -s /bin/false mysql
[root@localhost mysql]# mkdir mysql-files
[root@localhost mysql]# chown mysql:mysql mysql-files
[root@localhost mysql]#  chmod 750 mysql-files
[root@localhost mysql]# bin/mysqld --initialize --user=mysql
2023-05-28T07:02:36.342000Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.33) initializing of server in progress as process 7853
2023-05-28T07:02:36.368565Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-05-28T07:02:38.108072Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-05-28T07:02:39.268898Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Zy-;br.I_2u8
[root@localhost mysql]# bin/mysql_ssl_rsa_setup
[root@localhost mysql]# bin/mysqld_safe --user=mysql &
[1] 7894
[root@localhost mysql]# Logging to '/usr/local/mysql/data/localhost.err'.
2023-05-28T07:02:52.662359Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

インストールコマンドソース公式サイトのインストールガイド

3.2.2 インストールコマンドの説明

上記のインストール コマンドの説明は次のとおりです。

  1. 「mysql」という名前のユーザーグループを作成します
  2. 「mysql」という名前のシステム ユーザーを作成し、「mysql」ユーザー グループに追加し、そのログイン シェルを /bin/false に設定してユーザーのログイン権限を制限します。
  3. MySQL データ ファイルを保存するための mysql-files という名前のディレクトリを作成します。
  4. mysql-files ディレクトリの所有権 (所有者とグループ) を「mysql」ユーザーとグループに設定します。
  5. mysql-files ディレクトリの権限を 750 に設定して、「mysql」ユーザー グループのメンバーのみがディレクトリの読み取り、書き込み、および実行を行えるようにします。
  6. MySQL データベースを初期化し、ユーザーを「mysql」に設定します。このコマンドは、システム テーブルを作成し、パスワードを割り当て、その他の必要なデータ ファイルを生成します。
  7. 安全な通信のために MySQL の SSL キーと証明書を生成する
  8. MySQL サーバーを「mysql」ユーザーとして起動します。mysqld_safe は、MySQL サーバーを起動および監視するためのスクリプトです。

3.2.3 検査サービス

3.2.1までのインストールと起動後、mysqlサービスのプロセスが起動しているか確認し、新しい操作画面を作成して実行することができます。ps -ef|grep mysql

[root@localhost ~]# ps -ef|grep mysql
root       7894   7269  0 15:02 pts/0    00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql      7964   7894  0 15:02 pts/0    00:00:08 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.err --pid-file=localhost.pid
root       8035   7783  0 15:17 pts/1    00:00:00 bin/mysql -u root -p
root       8061   8045  0 15:21 pts/2    00:00:00 grep --color=auto mysql
[root@localhost ~]# 

3.2.4 ログインとパスワードの変更

上記の起動コマンドを実行すると、操作ウィンドウが占有されています。起動コマンドを実行するには、新しい操作ウィンドウを作成し、/usr/local/mysqlbin/mysql -u root -pディレクトリに入り、サーバーにログインするためのコマンドです。今度はパスワードの入力を求められますが、このパスワードは上記6番目のパスワードであり、実行プロセスは次のようになります。

[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# bin/mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.33

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

上記のクライアントに入った後、操作を通じてユーザー テーブルのフィールドを変更してパスワードを変更し、ユーザー パスワードを123456に変更します。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

IDENTIFIED WITH mysql_native_password : これは、ユーザーに設定される新しい認証方法です。ユーザーの認証方法を mysql_native_password に変更します。これは、MySQL で一般的に使用される認証プラグインです。

フラッシュ権限: ユーザー権限と権限テーブルをリロードして更新し、変更された権限がすぐに有効になるようにします (ただし、確立された接続には影響しません。クライアントは新しい接続が確立された場合にのみ有効になります)。

3.2.5 リモートログインを許可する

ユーザーフィールドを更新して、ログインするリモートユーザーの root アカウントを変更し、mysql クライアントでの実行を続行します。

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set user.Host='%'where user.User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

3.2.6 Navicat クライアントを使用して接続する

サービスをインストールしたマシンの IP は 192.168.3.51、デフォルトのポートは 3306、アカウント root、パスワード 123456 を入力し、「接続のテスト」をクリックします。

ここに画像の説明を挿入

4. 設定ファイルから開始します

MySQL プログラムは、オプション ファイル (構成ファイルとも呼ばれる) から起動オプションを読み取ることができます。構成ファイルは、プログラムを実行するたびにコマンド ラインにオプションを入力する必要がないように、一般的に使用されるオプションを指定する便利な方法を提供します。

4.1 サービスの終了

まず起動したmysqlサービスを終了します。

[root@localhost ~]# ps -ef|grep mysql
root       7894   7269  0 15:02 pts/0    00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql      7964   7894  0 15:02 pts/0    00:00:08 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.err --pid-file=localhost.pid
root       8035   7783  0 15:17 pts/1    00:00:00 bin/mysql -u root -p
root       8061   8045  0 15:21 pts/2    00:00:00 grep --color=auto mysql
[root@localhost ~]# kill -9 7894
[root@localhost ~]# kill -9 7964
[root@localhost ~]# ps -ef|grep mysql
root       8098   8045  0 15:46 pts/2    00:00:00 grep --color=auto mysql
[root@localhost ~]# 

4.2 設定ファイルの作成

以前のインストールと起動ではすべてデフォルト設定が使用されます。これは、/etc ディレクトリに my.cnf ファイルを作成することで起動できます。

[root@localhost ~]# touch /etc/my.cnf
[root@localhost ~]# vi /etc/my.cnf

以下の設定内容を入力します

[client]
port = 3306
#没有就创建,默认就在这里
socket = /tmp/mysql.sock

[mysqld]
###############################基础设置#####################################
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
#服务端口号 默认3306
port = 3306
#mysql安装根目录
basedir = /usr/local/mysql
#mysql数据文件所在位置 没有改目录则创建
datadir = /usr/local/mysql/data
#临时目录 比如load data infile会用到
tmpdir = /tmp
#设置socke文件所在目录
socket = /tmp/mysql.sock
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB
###############################日志设置#####################################
#数据库错误日志文件
log_error = error.log

保存後起動コマンドを実行、bin/mysqld_safe --user=mysql &
処理を確認、ps -ef|grep mysql
成功したら実行、表示

[root@localhost mysql]# bin/mysqld_safe --user=mysql &
[1] 8595
[root@localhost mysql]# 2023-05-28T08:07:54.842424Z mysqld_safe Logging to '/usr/local/mysql/data/error.log'.
2023-05-28T08:07:54.873484Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@localhost mysql]# 

[root@localhost mysql]# ps -ef|grep mysql
root       8595   7269  0 16:07 pts/0    00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql      8835   8595 13 16:07 pts/0    00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=error.log --pid-file=localhost.pid --socket=/tmp/mysql.sock --port=3306
root       8879   7783  0 16:08 pts/1    00:00:00 grep --color=auto mysql
[root@localhost mysql]# 

5. スタートアップの設定

5.1 起動スクリプトのコピー

起動スクリプトは support-files/ ディレクトリ内の mysql.server ファイルであり、それを /etc/init.d/ ディレクトリにコピーします (コピー後、名前を変更することも、引き続き mysql.server を使用することもできます)

[root@localhost mysql]# cd support-files/
[root@localhost support-files]# pwd
/usr/local/mysql/support-files
[root@localhost support-files]# cp mysql.server /etc/init.d/mysql.server
[root@localhost support-files]# 

5.2 起動スクリプトの変更

上記のmy.cnf設定ファイルと一致するように、起動スクリプト mysql.server のbasedirdatadirを変更します。

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

変更後に保存する

5.3 スタートアップの追加

ブートを設定するには、次のコマンドを実行します。

chkconfig --add /etc/init.d/mysql.server
chkconfig mysql.server on

チェックコマンドを実行しchkconfig --list mysql.server、2、3、4、5のステータスがonまたはonになっていれば成功、失敗していれば実行処理を実行しますchkconfig --level 2345 mysql.server on

[root@localhost support-files]# chkconfig --add /etc/init.d/mysql.server
[root@localhost support-files]# chkconfig mysql.server on
[root@localhost support-files]# chkconfig --list mysql.server

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

mysql.server   	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@localhost support-files]# 

mysql.server ファイルには次の指示があります: Default-Start: 2 3 4 5

5.4 共通管理コマンド

  1. MySQLサービスを開始する
sudo service mysql.server start
或
sudo systemctl start mysql.server
  1. MySQL サービスを停止する
sudo service mysql.server stop
或
sudo systemctl stop mysql.server
  1. MySQLサービスを再起動します
sudo service mysql.server restart
或
sudo systemctl restart mysql.server
  1. MySQL サービスのステータスを表示する
sudo service mysql.server status
或
sudo systemctl status mysql.server

要約する

  この記事では、CentOS 7.6 オペレーティング システムにバイナリ解凍パッケージを使用して MySQL 8 をインストールするプロセスを詳しく紹介します。まず、ハードウェア要件、システム要件、インストールの依存関係などの準備の概要を説明します。次に、公式 Web サイトへのログインから適切なバージョンの選択まで、MySQL 8 をダウンロードするプロセスを詳しく説明しました。インストール セクションでは、インストール コマンドの実行、サービス ステータスの確認、ログインとパスワードの変更、リモート ログインの許可、Navicat クライアントを使用した MySQL への接続など、MySQL 8 のアップロード、解凍、インストールの手順を段階的に説明しました。さらに、この記事では、MySQL サービスを起動するための設定ファイルと起動の設定方法についても説明し、一般的に使用される管理コマンドをいくつか紹介します。この記事のガイダンスを通じて、読者が MySQL 8 を正常にインストールして構成し、強力なデータベース機能を使い始めることができることを願っています。

おすすめ

転載: blog.csdn.net/dougsu/article/details/130816827