Linux で cmake を使用して MySQL をコンパイルおよびインストールするための詳細なチュートリアル

Linux で cmake を使用して MySQL をコンパイルおよびインストールするための詳細なチュートリアル

1. cmakeをインストールする

1. cmakeの圧縮パッケージを解凍する

[root@mysql ツール]# tar -zvxf cmake-2.8.8.tar.gz
[root@mysqlツール]# ls
cmake-2.8.8 cmake-2.8.8.tar.gz mysql-5.5.16.tar.gz スクリプト

2. 分析

[root@mysql ツール]# cd cmake-2.8.8
[root@mysql cmake-2.8.8]# ./configure
---------------------------------------------
CMake 2.8.8、Copyright 2000-2009 Kitware, Inc.
GNUツールチェーンが見つかりました
このシステムのCコンパイラはgccです。
このシステムの C++ コンパイラは g++ です。
このシステムのMakefileプロセッサはgmakeです。
g++はGNUコンパイラです
g++ には std:: 名前空間に STL があります
g++にはANSIストリームがある
g++ には std:: 名前空間にストリームがあります

3. インストール

[root@mysql cmake-2.8.8]# echo $?
0
#戻り値が 0 の場合、実行は成功し、戻り値が 1 の場合、実行は失敗します。

[root@mysql cmake-2.8.8]# gmake && gmake インストール
ターゲット cmIML_test の依存関係をスキャンしています
[ 1%] C オブジェクトの構築 Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test.co
[ 1%] C オブジェクトの構築 Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test_ABI_C.co
[ 1%] C オブジェクトの構築 Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test_INT_C.co
[ 1%] C オブジェクトの構築 Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test_include_C.co
[ 2%] CXX オブジェクトの構築 Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test_ABI_CXX.cxx.o
[ 2%] CXX オブジェクトの構築 Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test_INT_CXX.cxx.o
[ 2%] CXX オブジェクトの構築 Utilities/KWIML/test/CMakeFiles/cmIML_test.dir/test_include_CXX.cxx.o

2. MySQLのインストールを開始する

1. まず、(ncurses-devel)依存パッケージをインストールする必要があります

[root@mysql cmake-2.8.8]# cd …
[root@mysqlツール]# yum -y install ncurses-devel
読み込まれたプラグイン: fastestmirror
キャッシュされたホストファイルからミラー速度をロードする

ベース: mirrors.zju.edu.cn
追加情報: centos.ustc.edu.cn
更新情報: mirrors.zju.edu.cn
依存関係の解決
–> トランザクションチェックを実行中
—> ツール ncurses-devel.x86_64 0:5.9-14.20130511.el7_4 がインストールされます
#############インストールが完了したら確認してください###########
[root@mysql ツール]# rpm -qa | grep ncurses-devel
ncurses-devel-5.9-14.20130511.el7_4.x86_64
[root@mysqlツール]#

2. mysqlの圧縮パッケージを解凍する

[root@mysqlツール]# tar -zvxf mysql-5.5.16.tar.gz
[root@mysqlツール]# ls
cmake-2.8.8 cmake-2.8.8.tar.gz mysql-5.5.16 mysql-5.5.16.tar.gz スクリプト
[root@mysqlツール]#

3. 仮想ユーザーを作成する

[root@mysqlツール]# useradd mysql -s /sbin/nologin -M
[root@mysqlツール]# id mysql
uid=1000(mysql) gid=1000(mysql) グループ=1000(mysql)
[root@mysqlツール]#

4. 構成分析

[root@mysqlツール]# cd mysql-5.5.16
[ルート@mysql mysql-5.5.16]#
[root@mysql mysql -5.5.16]#cmake_install_prefix =/usr/local/mysql -5.16 -dmysql_datadir =/usr/local/mysql -5.5.16/data -dmysql =/usr/usr/usr/usr/usr/usr efault_charset = utf8 -ddefault_collat​​ion = utf8_general_ci -dextra_charsets = gbk2312、utf8、ascii -denabled_local_infile = 1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE = 1 -DWITHOUT_PARTITION_STORAGE_ENGINE = 1 -DWITH_FAST_MUTEXES = 1 -DWITH_ZLIB = BUNDLED -DENABLED_LOCAL_INFILE = 1 -DWITH_READLINE = 1 -DWITH_EMBUG = 0

5. インストール

[root@mysql mysql-5.5.16]# 作成 && インストール
ターゲットINFO_BINの依存関係をスキャンしています
[ 0%] ターゲットINFO_BINを構築しました
ターゲットINFO_SRCの依存関係をスキャンしています
[ 0%] ターゲットINFO_SRCを構築しました
ターゲット abi_check の依存関係をスキャンしています
[ 0%] ターゲットabi_checkを構築しました
ターゲット zlib の依存関係をスキャンしています

6. ソフトリンクを作成する

[root@mysql mysql-5.5.16]# ln -s /usr/local/mysql-5.5.16/ /usr/local/mysql
[root@mysql mysql-5.5.16]# 読み取りリンク /usr/local/mysql
mysql 5.5.16 の最新バージョンをダウンロード.
[ルート@mysql mysql-5.5.16]#

7. 環境を構成する

[root@mysql mysql-5.5.16]# cd …
[root@mysql tools]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile

[root@mysqlツール]# tail -1 /etc/profile
PATH=/usr/local/mysql/bin:$PATH をエクスポートします

[root@mysql tools]# ソース /etc/profile
[root@mysqlツール]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@mysqlツール]#

8. コピー、表示、所有者の設定、および tmp 権限の追加

[root@mysql tools]# \cp mysql-5.5.16/support-files/my-small.cnf /etc/my.cnf
[root@mysql tools]# ll /usr/local/mysql/data/
合計 0
drwxr-xr-x 2 ルート ルート 20 5月 31 11:51 テスト
[root@mysql ツール]# chown -R mysql.mysql /usr/local/mysql/data/
[root@mysqlツール]# chmod -R 1777 /tmp/
[root@mysqlツール]#

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

[root@mysql tools]# cd /usr/local/mysql/scripts/
[root@mysql スクリプト]# ./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
MySQL システム テーブルをインストールしています…
わかりました
ヘルプ テーブルに入力しています…
わかりました

注: 2 つの OK が表示された場合は成功を示します

10. スタートアップを設定する

[root@mysql スクリプト]# cd /roottools/mysql-5.5.16
[root@mysql mysql-5.5.16]# cp サポートファイル/mysql.server /etc/init.d/mysqld
[root@mysql mysql-5.5.16]# chmod -R 755 /etc/init.d/mysqld
[root@mysql mysql-5.5.16]# chkconfig --add mysqld
[root@mysql mysql-5.5.16]# chkconfig mysqld をオンにする
[root@mysql mysql-5.5.16]# chkconfig --list mysqld

注: この出力にはSysVサービスのみが表示され、ネイティブは含まれません。
systemdサービス。SysV構成データはネイティブによって上書きされる可能性があります
systemd の設定。

systemd サービスを一覧表示するには、「systemctl list-unit-files」を使用します。
特定のターゲットで有効になっているサービスを確認するには
'systemctl list-dependencies [ターゲット]'。
mysqld 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ
[ルート@mysql mysql-5.5.16]#

11. MySQLデータベースを起動する

[root@mysql mysql-5.5.16]# /etc/init.d/mysqld を起動します
MySQL を起動しています… 成功しました!
[ルート@mysql mysql-5.5.16]#

12. ポートプロセスを確認する

[root@mysql mysql-5.5.16]# lsof -i:3306
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
mysqld 51146 mysql 10u IPv4 82600 0t0 TCP :mysql (LISTEN)
[root@mysql mysql-5.5.16]# netstat -lnutp|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0: LISTEN 51146/mysqld
[root@mysql mysql-5.5.16]# ps -ef|grep 3306
mysql 51146 50900 0 14:13 pts/1 00:00:00 /usr/local/mysql-5.5.16/bin/mysqld --basedir=/usr/local/mysql-5.5.16 --datadir=/usr/local/mysql-5.5.16/data --plugin-dir=/usr/local/mysql-5.5.16/lib/plugin --user=mysql --log-error=/usr/local/mysql-5.5.16/data/mysql.err --pid-file=/usr/local/mysql-5.5.16/data/mysql.pid --socket=/usr/local/mysql-5.5.16/tmp/mysql.sock --port=3306
ルート 51170 16240 0 14:14 pts/1 00:00:00 grep --color=auto 3306
[ルート@mysql mysql-5.5.16]#

注: 再初期化する場合は、データディレクトリのライブラリファイルの保存場所を削除するか、新しいライブラリファイルの保存場所を作成して再初期化し、2つのOKプロンプトが表示されれば成功です。

データベースに入る

[root@localhost ~]# mysql

すべてのユーザーを表示

mysql> mysqlを使用する
mysql> テーブルを表示します。
mysql> ユーザーからユーザー、ホストを選択します。

システムのデフォルトを削除する

user='' の mysql.user から削除します。
ホスト='::1' の mysql.user から削除します。
mysql.user からユーザー、ホストを選択します。

これら2つだけ残す

mysql> mysql.user からユーザー、ホストを選択します。
±-----±----------+
| ユーザー | ホスト |
±-----±----------+
| ルート | 127.0.0.1 |
| ルート | ローカルホスト |
±-----±----------+
セット内の 2 行 (0.00 秒)

マイSQL>
#########################

追加の承認された管理者ユーザーの追加

grant all privileges on . to system@'192.168.%' identified by 'system' with grant option;

文字セットパス

vi /etc/locale.conf #centos7

mysql パスワード作成

/application/mysql//bin/mysqladmin -u ルートパスワード '123456'

mysql パスワード変更

/application/mysql//bin/mysqladmin -u root -p123456 パスワード '112233'

要約する

上記は、Linux で cmake を使用して MySQL をコンパイルおよびインストールする方法に関する詳細なチュートリアルです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • MySQLプリコンパイル機能の詳細な説明
  • mysqliの前処理コンパイルの詳細な理解
  • ソースコードから MySQL 8.0.20 をコンパイルしてインストールする詳細なチュートリアル
  • CentOS8 デプロイメント LNMP 環境で mysql8.0.29 をコンパイルしてインストールする方法の詳細なチュートリアル
  • 1 つの記事で MySQL のプリコンパイルを理解する

<<:  MySQL アーキテクチャのナレッジポイントの概要

>>:  React forwardRefの使い方と注意点

推薦する

Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明

ここではCentOS7が使用されており、カーネルバージョンは [root@localhost ~]#...

面接でよく聞かれる Vue 修飾子 13 個

目次1. 怠惰な2.トリム3.番号4.停止5. キャプチャ6.自分7.一度8.予防する9.ネイティブ...

Web デザイン ヘルプ: Web フォント サイズ データ リファレンス

<br />内容はインターネットから転載したものです。どこから見つけたのか忘れてしまいま...

Q&A: XML と HTML の違い

Q: xml と html の違いがわかりません。違いは何ですか? A: XMLと HTML の違い...

ホストサービスにアクセスするDockerでのサービスの実装

目次1. シナリオ2. 解決策3. 結論4. 参考文献1. シナリオ日常の開発およびテスト作業には ...

ブラウザのCSS、JavaScript、背景画像のキャッシュをクリアする簡単な方法

実際のプロジェクト開発プロセスでは、ページがサーバーにアップロードされます。サーバーへの負荷を軽減し...

Vue プロジェクトでのスキャンコード決済の実装例 (デモ付き)

目次需要背景思考分析UI 表示始める1. 支払いコンポーネントテンプレートを作成する2. 支払いコン...

Linux環境変数の設定戦略の詳細な説明

ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定する必要があります。以下...

nginx でクロスドメイン障害修復を構成する方法の例

Nginxのクロスドメイン設定は次のようには機能しません サーバー{ 聞く 80; server_n...

MySQLインスタンスが起動できない問題の分析と解決

目次序文シナリオ分析要約する序文数日前、友人がWeChatで私に連絡してきて、マシンがダウンタイムか...

Linuxはlsof/extundeleteツールを使用して、誤って削除されたファイルやディレクトリを復元します。

序文Linux には Windows のような目立つごみ箱がないため、簡単に復元することはできません...

OracleデータをMySQLデータベースに抽出する実装プロセス

Oracle データベースから MySQL データベースへの移行では、Oracle データベース モ...

LinuxはMySQLデータベースの自動バックアップとスケジュールバックアップを毎日実装しています

概要バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...

MySQL の NULL 値に関する体験談と分析チュートリアルシリーズ

目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...

Vue の nextTick について話す

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