CentOS7のソースコードからMySQL8.xをインストールします

ソースコードから[MySQL](https://cloud.tencent.com/product/cdb?from=10680)をインストールすることを選択します。MySQLやその他のインストール方法についてある程度理解している必要があります。ここでは、周囲の情報についてはあまり詳しく説明しません。開始するだけです。

MySQLをコンパイルすると、より多くのメモリが消費されます。マシンのメモリが小さい場合、コンパイル中にメモリ不足の例外が発生する可能性があります。スワップパーティションが設定されていない場合は、スワップパーティションを設定して解決できます。設定されていない場合は、メモリを拡張することしかできません。

[ root@txy-server ~]# dd if=/dev/zero of=/swapfile bs=1k count=2048000[root@txy-server ~]# mkswap /swapfile
[ root@txy-server ~]# swapon /swapfile

1、 コンパイルに必要な依存関係をインストールする###

**1.1、**yumコマンドを使用して、コンパイルが依存するパッケージとツールをインストールします。

[ root@txy-server ~]# yum install -y cmake3 git gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel bzip2 openssl-devel libtirpc-devel.x86_64

MySQLのgccバージョン要件は5.3以上であるため、yumの最新バージョンは4.8.5しかないため、最初にgccバージョンをアップグレードする必要があります。

gccバージョンをアップグレードする主な方法は2つあります。1つはソースパッケージをダウンロードしてコンパイルおよびインストールする方法、もう1つはyumを使用してdevtoolsetパッケージをインストールする方法です。devtoolsetパッケージの現在のgccバージョンは5.3.1です。

ソースコードのインストール方法はより柔軟で、任意のバージョンを選択できますが、非常に時間がかかります。ここでは両方の方法を紹介しますので、状況に応じてお選びいただけます。

**1.1.1、**yumを使用してdevtoolsetパッケージをインストールします。コマンドは次のとおりです。

[ root@txy-server ~]# yum install -y centos-release-scl scl-utils-build
[ root@txy-server ~]# yum install -y devtoolset-4-gcc.x86_64 devtoolset-4-gcc-c++.x86_64 devtoolset-4-gcc-gdb-plugin.x86_64

**1.1.2、**ソフトウェアリンクを作成し、 / usr / binの下のgcc関連コマンドをオーバーライドします。これは、MySQLをコンパイルするときに、デフォルトで / usr / binディレクトリにgcc関連コマンドが見つかるためです。

[ root@txy-server ~]# ln -sf /opt/rh/devtoolset-4/root/usr/bin/* /usr/bin/

**1.1.3、**最後に、gcc、cc、c ++などのコマンドのバージョンが5.3.1であることを確認します。

[ root@txy-server ~]# gcc -v
...
gcc version 5.3.120160406(Red Hat 5.3.1-6)(GCC)[root@txy-server ~]# cc -v
...
gcc version 5.3.120160406(Red Hat 5.3.1-6)(GCC)[root@txy-server ~]# c++-v
...
gcc version 5.3.120160406(Red Hat 5.3.1-6)(GCC)

1.2.1、以下はソースインストールの方法です。最初にGCCソースインストールパッケージをダウンロードして解凍します。

[ root@txy-server ~]# cd /usr/local/src
[ root@txy-server /usr/local/src]# wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz
[ root@txy-server /usr/local/src]# tar -xzvf gcc-9.1.0.tar.gz

**1.2.2、**解凍されたディレクトリに入り、 download_prerequisitesスクリプトを実行します。これにより、コンパイルに必要な依存ファイルとライブラリが自動的にダウンロードされます。

[ root@txy-server /usr/local/src]# cd gcc-9.1.0[root@txy-server /usr/local/src/gcc-9.1.0]# ./contrib/download_prerequisites

**1.2.3、**出力ディレクトリを作成し、すべての中間ファイルをこのディレクトリに配置します。

[ root@txy-server /usr/local/src/gcc-9.1.0]# mkdir gcc-build-9.1.0

**1.2.4、**新しく作成したディレクトリに入り、コンパイル構成を完了します。

[ root@txy-server /usr/local/src/gcc-9.1.0]# cd gcc-build-9.1.0[root@txy-server /usr/local/src/gcc-9.1.0/gcc-build-9.1.0]# ../configure -enable-checking=release -enable-languages=c,c++-disable-multilib

パラメータの説明:

**1.2.5、**次に、コンパイルしてインストールできます。

[ root@txy-server /usr/local/src/gcc-9.1.0/gcc-build-9.1.0]# make && make install

**1.2.6、**ソフトウェアリンクを作成し、 / usr / binの下のgcc関連コマンドをオーバーライドします。これは、MySQLをコンパイルするときに、デフォルトで / usr / binディレクトリにgcc関連コマンドが見つかるためです。

[ root@txy-server ~]# ln -sf /usr/local/bin/* /usr/bin/

**1.2.7、**最後に、gccバージョンが9.1.0であるかどうかを確認します。これは、インストールが成功したことを意味します。

[ root@txy-server ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/9.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with:../configure -enable-checking=release -enable-languages=c,c++-disable-multilib
Thread model: posix
gcc version 9.1.0(GCC)[root@txy-server ~]#

2、 MySQLソースコードパッケージをダウンロードし、解凍、コンパイル、インストール###

**2.1、**MySQL公式ウェブサイトのダウンロードアドレスを入力してください:

https://dev.mysql.com/downloads/mysql/

**2.2、**ソースパッケージのダウンロードリンクをコピーします。

**2.3、**Linuxでソースパッケージをダウンロードして解凍します。

[ root@txy-server ~]# cd /usr/local/src
[ root@txy-server /usr/local/src]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.18.tar.gz[root@txy-server /usr/local/src]# tar -zxvf mysql-boost-8.0.18.tar.gz

**2.4、**解凍したディレクトリに入り、以下の手順に従ってコンパイルとインストールを完了します。

# データファイルストレージディレクトリを作成します
[ root@txy-server /usr/local/src]# mkdir -p /data/mysql
[ root@txy-server /usr/local/src]# cd mysql-8.0.18/
# コンパイルによって生成された中間ファイルを格納するための新しいディレクトリを作成します。ソースディレクトリでのコンパイルは許可されていないため
[ root@txy-server /usr/local/src/mysql-8.0.18]# mkdir builder
[ root@txy-server /usr/local/src/mysql-8.0.18]# cd builder/[root@txy-server /usr/local/src/mysql-8.0.18/builder]# cmake3 ../-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_DEBUG=0-DMYSQL_MAINTAINER_MODE=0-DWITH_SYSTEMD=1-DDOWNLOAD_BOOST=1-DWITH_BOOST=../boost
[ root@txy-server /usr/local/src/mysql-8.0.18/builder]# make && make install

cmake3コマンドで使用されるパラメーターの説明:

cmake3でサポートされているパラメータについては、公式Webサイトのドキュメントを確認してください。

https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html

**2.5、**コンパイルしてインストールした後、mysqlユーザーを作成し、対応するディレクトリの所有者を変更します。

[ root@txy-server ~]# groupadd mysql
[ root@txy-server ~]# useradd -M -g mysql -s /sbin/nologin mysql
[ root@txy-server ~]# chown -R mysql:mysql /usr/local/mysql/[root@txy-server ~]# chown -R mysql:mysql /data/mysql/

**2.6、**構成ファイルを編集します。

[ root@txy-server ~]# vim /etc/my.cnf
[ mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock

[ mysqld_safe]
log-error=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysql.pid

**2.7、**ログファイルが保存されているディレクトリとpidファイルが保存されているディレクトリを作成し、mysqlユーザーにアクセス許可を付与します。

[ root@txy-server ~]# mkdir -p /var/log/mysqld /var/run/mysqld
[ root@txy-server ~]# chown -R mysql:mysql /var/log/mysqld
[ root@txy-server ~]# chown -R mysql:mysql /var/run/mysqld

**2.8、**MySQLコマンドの使用を容易にするために環境変数を構成します。

[ root@txy-server ~]# vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
[ root@txy-server ~]# source /etc/profile
[ root@txy-server ~]# mysql --version  #構成が成功したことを確認します
mysql  Ver 8.0.18for Linux on x86_64(Source distribution)[root@txy-server ~]#

**2.9、**次のコマンドを実行して、データベースを初期化します。

[ root@txy-server ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql/--datadir=/data/mysql

初期化が成功すると、次の図に示すように、ルートアカウントのデフォルトのパスワードが生成されます。

後でパスワードを変更するにはMySQLにログインする必要があるため、パスワードをコピーして保存します

**2.10、**MySQLによって生成された起動ファイルを / usr / lib / systemd / system /ディレクトリにコピーします。

[ root@txy-server ~]# cp /usr/local/src/mysql-8.0.18/builder/scripts/mysqld.service /usr/lib/systemd/system/[root@txy-server ~]# chown 775/usr/lib/systemd/system/mysqld.service

2.11、systemctlコマンドを使用してMySQLサービスを開始します。

[ root@txy-server ~]# systemctl start mysqld

**2.12、**ポート3306が正常に監視されているかどうかを確認します。

[ root@txy-server ~]# netstat -lntp |grep 3306
tcp6       00:::33060:::*                    LISTEN      27363/mysqld
tcp6       00:::3306:::*                    LISTEN      27363/mysqld
[ root@txy-server ~]#

**2.13、**デフォルトのパスワードを使用してMySQLにログインし、パスワードをリセットして、リモートログインを開きます。

[ root@txy-server ~]# mysql -uroot -pmXyfy/g8\)aus
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';  #パスワードを再設定する
mysql> use mysql;
mysql> update user set host ='%' where user='root';  #リモートログインを開く
mysql> FLUSH PRIVILEGES;  #更新の変更

**2.14、**視覚化ツールを使用してリモートで接続し、MySQLに正常にアクセスできるかどうかをテストします。

end

Recommended Posts

CentOS7のソースコードからMySQL8.xをインストールします
CentOS7の下にmysql5.7をインストールします
CentOS7.5ソースコードはmysql5.7.29をコンパイルしてインストールします
Centos7にmysqlをインストールします
CentOS6.5の下にmysql5.1をインストールします
CentOS7.4ソースコードはMySQL8.0をコンパイルしてインストールします
centos7ソースコードからopensshをインストールする方法
LinuxにMySQLをインストールする(CentOS 7)
Centos6インストールmysql5.7.xシリーズ
Ubuntu18.04.1のソースコードからOpenJDK8をコンパイルしてインストールします
CentOS7でFFMPEGソースコードをコンパイルする
CentOS7.2はMysql5.7.13をインストールします
CentOS7はMySQLをインストールします
CentOSインストールmysql
CentOS7インストールmysql
CentOS7はMySQL5.6をインストールします
CentOS8はMySQL8.0をインストールします
CentOS7はmysql8をインストールします
CentOS7はMySQL8をインストールします
centos7.5インストールmysql5.7.17
LinuxCentOS7システムにmysql8.0.13バージョンをインストールします
CentOS6.5オフラインインストールMySQL5.6.26
Centos7にMySQL5.7をインストールします
中級クラスの子供向けにCentOS7にMySQL5.7をインストールしてください!
Ubuntu16.04にmysqlをインストールします
Centos7の下にActiveMQをインストールします
CentOS7の下にPostgreSQL12をインストールします
VMwareにCentOSをインストールする
CentOS 7.2YumはMySQL5.6をインストールします
Centos7インストールMysql8チュートリアル
CentOS6.XはVirtualBox-5.1をインストールします
Centos7はmongodb4.xをインストールします
Centosはmysql8を手動でインストールします
Centos7はMysqlデータベースをインストールします
Centos7の下にJenkinsをインストールします
MariaDBCentos7の下にMariaDBをインストールします
UbuntuにMySQLをインストールする
mysqlをcentosにオンラインでインストールする
centosはyumを介してmysqlをインストールします
CentOS7にElasticSearch7.xをインストールします
LinuxCentosにMySQL8.0.16をインストールします
CentOS6.9でOracle11gR2データベースをインストールします
CentOS6.xインストールmysql5.7レコード
CentOS6の下にJavaJDK8をインストールします
CentosはJDK8ソースコードをコンパイルします
CentOS7の下にMongoDBデータベースをインストールします
linuxインストールmongodbでのCentOS6.8
CentOS8はMySQL8をインストールします(プロテスト)
CentOS7の下にMesosチュートリアルをインストールします
CentOS7yumはmysqlをインストールして起動します
CentOS5.9でkeepalivedをインストールして構成します
CentOSYumはMySQL5.6をコンパイルしてインストールします
Centos5.2でLAMPをコンパイルしてインストールします
[redisの概要] Centosの下にredisをインストールします
CentOS 7はNginx、PHP、MySQLパッケージをインストールします
CentOS6.xはNginxをコンパイルしてインストールします
Linux CentOS7(Windows)にMySQLをインストールする
CentOS7yumはmysqlをインストールして起動します
Ubuntu 18.04にMySQLをインストールします(グラフィックチュートリアル)
CentOSの下にハーバーミラーウェアハウスをインストールします
Centos7とcentos8はmysql5.65.78.0をインストールするのでとても簡単です