CentOS 7 環境でソースコードから MySQL 5.7 をインストールする方法

CentOS 7 環境でソースコードから MySQL 5.7 をインストールする方法

この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法について説明します。ご参考までに、詳細は以下の通りです。

依存パッケージをインストールする

次のようにコードをコピーします
yum -y インストール autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++

対応するソースパッケージをダウンロードする

http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz をダウンロードしてください
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12.tar.gz をダウンロードしてください

MySQLユーザーを追加する

ユーザー追加 -M -s /sbin/nologin mysql

ソースパッケージを解凍する

tar zxvf boost_1_59_0.tar.gz -C /home/mysql # ファイルを /home/mysql ディレクトリに解凍します tar zxvf mysql-5.7.12.tar.gz

mysqlをコンパイルする

cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql/mysql_client/mysql-5.7-01 \
-DMYSQL_DATADIR=/home/mysql/mysql_data/mysql-5.7-01 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/home/mysql/boost_1_59_0 \ #boostの場所を指定します -DSYSCONFDIR=/etc/mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=すべて\
-DWITH_EMBEDDED_SERVER=1 \
3306 を指定します。

コンパイルしてインストールする

make -j `grep processer /proc/cpuinfo | wc -l` #コンパイルには大量のメモリが消費されるため、メモリが少ないとコンパイルを完了できない可能性があります make install #インストールを開始します

構成の起動

次のようにコードをコピーします
cp /home/mysql/mysql_client/mysql-5.7-01/support-files/mysql.server /etc/init.d/mysqld

実行権限を追加する

chmod +x /etc/init.d/mysqld #mysqld は mysql 設定ファイルのパスを変更できます

参照のみのために、mysql 設定 /etc/my.cnf を設定します。

[クライアント]
ポート = 3306
ソケット = /home/mysql/mysql_data/mysql-5.7-01/mysql.sock
デフォルトの文字セット = utf8
[mysqld]
ポート = 3306
ソケット = /home/mysql/mysql_data/mysql-5.7-01/mysql.sock
ベースディレクトリ = /home/mysql/mysql_client/mysql-5.7-01
データディレクトリ = /home/mysql/mysql_data/mysql-5.7-01
pid ファイル = /home/mysql/mysql_data/mysql-5.7-01/mysql/mysql.pid
ユーザー = mysql
バインドアドレス = 0.0.0.0
サーバーID = 1
init-connect = '名前をutf8に設定'
文字セットサーバー = utf8
バックログ = 300
最大接続数 = 1000
最大接続エラー数 = 6000
オープンファイル制限 = 65535
テーブルオープンキャッシュ = 128
最大許容パケット = 4M
binlog_cache_size = 1M
最大ヒープテーブルサイズ = 8M
tmp_table_size = 16M
読み取りバッファサイズ = 2M
読み取りバッファサイズ = 8M
ソートバッファサイズ = 8M
結合バッファサイズ = 8M
キーバッファサイズ = 4M
スレッドキャッシュサイズ = 8
クエリキャッシュタイプ = 1
クエリキャッシュサイズ = 8M
クエリキャッシュ制限 = 2M
ft_min_word_len = 4
log_bin = /home/mysql/mysql_logs/mysql-5.7-01/mysql-bin
binlog_format = 混合
有効期限 = 30
log_error = /home/mysql/mysql_logs/mysql-5.7-01/mysql-error.log
遅いクエリログ = 1
長いクエリ時間 = 1
slow_query_log_file = /home/mysql/mysql_logs/mysql-5.7-01/mysql-slow.log
パフォーマンススキーマ = 0
タイムスタンプの明示的なデフォルト
外部ロックをスキップ
デフォルトストレージエンジン = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
バルク挿入バッファサイズ = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
インタラクティブタイムアウト = 28800
待機タイムアウト = 28800
[mysqlダンプ]
素早い
最大許容パケット = 16M
[マイサムチク]
キーバッファサイズ = 8M
ソートバッファサイズ = 8M
読み取りバッファ = 4M
書き込みバッファ = 4M

先ほど作成したmysqlユーザーにmysql関連のフォルダを割り当てることを忘れないでください。

chown -R mysql.mysql mysql/

データベースを初期化する

/home/mysql/mysql_client/mysql-5.7-01/bin/mysqld --initialize-insecure --user=mysql --basedir=/home/mysql/mysql_client/mysql-5.7-01 --datadir=/home/mysql/mysql_data/mysql-5.7-01 #--initialize-insecure はランダムなパスワードを生成しません

データベースを起動する

/etc/init.d/mysqld を起動します

データベースに入る

/home/mysql/mysql_client/mysql-5.7-01/bin/mysql -uroot -p

この記事が CentOS サーバーの設定に役立つことを願っています。

以下もご興味があるかもしれません:
  • Centos7 への mysql8.0rpm のインストール チュートリアル
  • Centos7 (linux+nginx+php7.1+mysql5.7) で yum を使用して lnmp をインストールするチュートリアル
  • CentOS7にmysql5.7の解凍バージョンをインストールする方法についての簡潔なチュートリアル
  • Centos7 のインストールと Mysql5.7 の設定
  • RedHat 6.5/CentOS 6.5 に MySQL 5.7.20 をインストールするための詳細なチュートリアル
  • Centos7 で yum を使用して Mysql5.7.19 をインストールする詳細な手順
  • Centos に MYSQL8.X をインストールするチュートリアル

<<:  JSは賞金の重さに基づいて当選確率を計算します

>>:  crontab の実行結果を電子メールでユーザーに通知する方法

推薦する

CSS3で作られたレインボーボタンスタイル

結果: 実装コード: html <div class="buttons"&...

nginx keepaliveの具体的な使い方

http1.1 プロトコルのデフォルトのリクエスト ヘッダーでは、図に示すように、デフォルトで ke...

MySql 認証に基づく vsftpd 仮想ユーザー

目次1. MySQLのインストール1.2 テーブル、データベース、ユーザーを作成する1.3 リモート...

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

ディスク領域の管理は、システム管理者にとって重要な日常的なタスクです。ディスク領域が使い果たされると...

Linux サーバーの状態を監視する方法

私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリテ...

dockerエラーの原因分析 終了しました (1) 4分前

Dockerエラー1. 原因を確認するdocker ログ ネクサス2. エラーの原因OpenJDK ...

突然外部ネットワークからDockerにアクセスできなくなる問題の解決方法

マスターのメソッドによると、原因は sysctl net.ipv4.ip_forward であること...

見落としがちなVue.jsのAPIを詳しく解説

目次次のチェックv-model 構文シュガー.sync 修飾子$セット計算プロパティセット要約する次...

Vue の nextTick について話す

データが変更されても、DOM ビューはすぐには更新されません。変更直後にノードまたはその値を取得しよ...

MySQLのinnodb_data_file_pathパラメータを変更する際の注意事項

序文innodb_data_file_path は、innodb テーブルスペース ファイルを指定す...

MySQL 8.0.23 のレプリケーション アーキテクチャにおけるスレーブ ノードの自動フェイルオーバー

私はしばらく MGR と連絡を取り合ってきました。MySQL 8.0.23 の登場により、MySQL...

Vue+el-tableはセルの結合を実現します

この記事の例では、参考までにセルの結合を実現するためのel-tableの具体的なコードを共有していま...

Vue が配列の変更を監視できない問題の解決方法

目次1. Vueリスナー配列2. vueが配列の変更を監視できない状況1. Vueリスナー配列Vue...

mysql のファイル mysql-bin.000001 とは何ですか? 削除できますか?

ポートを使用して MySQL をインストールした後、しばらくすると /var の容量が不足しているこ...

Nginx proxy_redirect の使用方法の詳細な説明

今日、Apache の nginx リバース プロキシを実行していたときに、ちょっとした問題に遭遇し...