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の使い方と注意点

推薦する

MySQL フラッシュバック ツール binlog2sql の詳細なインストールと設定のチュートリアル

概要binlog2sql は、Python で開発されたオープンソースの MySQL Binlog ...

Linux RabbitMQ クラスタ構築プロセス図

1. 全体的な手順冒頭で、RabbitMQ サービスをインストールして実行する方法を紹介しましたが、...

MySQLインデックスの作成について知っておくべきこと

目次序文: 1. インデックスメソッドを作成する2. インデックスを作成するために必要な権限序文: ...

すべてのブラウザとの完全な互換性を実現するために最適なプリセットを選択してください

各ブラウザの select タグのプロパティと各ブラウザのサポートが多少異なるため、各ブラウザでの選...

RGBAアルファ透明度変換計算表

IEでのRGBAとフィルター値の変換RGBA 透明度値IE フィルター値0.1 19 0.2 33 ...

nestjs からフロントエンドに返されるデータ形式のカプセル化実装

通常、開発プロセスでは、インターフェイス要求の成功または失敗は httpcode に基づいて決定され...

クエリでのMySQLのユニークキーの使用と関連する問題

1. テーブルステートメントを作成します。 テーブル「従業員」を作成します( `emp_no` in...

Vueが初めて要素を取得できなかったときの解決記録

序文Vue で要素を初回取得できない問題の解決方法は、ポップアップ ウィンドウで要素を取得するために...

MySQLパスワードを変更するいくつかの方法

序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...

XHTML 1.0 リファレンス

機能別に並べ替えNN: このタグをサポートする Netscape の以前のバージョンを示しますIE:...

ServerManager の起動時にデータベースに接続できないエラーを解決する方法

Servermanager 起動時の接続データベース エラーmgrstart.batを実行しますエラ...

JavaScript におけるイベント委譲メカニズムと深いコピーと浅いコピーの簡単な分析

目次1. イベントの委任イベントバブリングイベントキャプチャイベントの泡立ちの昇華考える2. 深いコ...

JavaScript での実行コンテキストと実行スタックの例の説明

JavaScript - 原則シリーズ日常の開発では、既存のプロジェクトを引き継ぐときは常に、まず他...

JSは検証コードのランダム生成を実装します

この記事の例では、検証コードのランダム生成を実現するためのJSの具体的なコードを参考までに共有してい...

MySQL XA で分散トランザクションを実装する方法

目次序文XA プロトコルMySQL XA で分散トランザクションを実装する方法序文MySQL が単一...