Linux に mysql をインストールするときに /etc に my.cnf ファイルがない問題を解決する

Linux に mysql をインストールするときに /etc に my.cnf ファイルがない問題を解決する

今日、mysql ポートを変更したいと思ったのですが、/etc/ ディレクトリに my.cnf ファイルがないことがわかったので、オンラインで解決策があるかどうか調べました。

Linux で my.cnf が見つからないというブログをたくさん読みましたが、そのすべてで my-medium.cnf を etc に移動して my.cnf に名前を変更するように書かれていましたが、私の場合も my-medium.cnf がありません。後で知ったのですが、5.7.18 以降では公式がバイナリ パッケージで my-default.cnf ファイルを提供しなくなったそうです。

詳細については、https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html を参照してください。

では、ポート番号を変更するにはどうすればよいでしょうか?実際には、/etc/mysql/mysql.conf.d を変更するだけで済みます。

補足: mysql を起動すると、/etc/my.cnf は無視されるというメッセージが表示されます。

今日、テスト開発者との問題に対処していたところ、MySQL インスタンスの起動に失敗することを発見しました。プロセスは次のとおりでした。

MySQL インスタンスが閉じられていることが判明しました。MySQL インスタンスを起動するコマンドを実行すると、警告が表示されます。

# サービス mysql.server を起動します
警告: 誰でも書き込み可能な設定ファイル '/etc/my.cnf' は無視されます
MySQL の起動に成功しました!

次の内容を示す mysql 起動ログを確認します。

151014 11:39:24 mysqld_safe /data/mysql/data のデータベースを使用して mysqld デーモンを起動しています
警告: 誰でも書き込み可能な設定ファイル '/etc/my.cnf' は無視されます

これはおそらく、権限がグローバルに書き込み可能であり、どのユーザーでも書き込みができることを意味します。 MySQL は、このファイルが他のユーザーによって悪意を持って変更される可能性があることを懸念しているため、この構成ファイルを無視します。この方法では、mysql をシャットダウンできません。

このとき、MySQL データベースの設定を照会すると、my.cnf で設定された一部のパラメータが MySQL インスタンスで有効になっていないことがわかります。

これは、/etc/my.cnf も 777 権限に変更されているためです。

# ls -la /etc/my.cnf
-rwxrwxrwx 1 ルート ルート 1120 7月 31 10:28 /etc/my.cnf

/etc/my.cnf の権限が多すぎるため、インスタンスを起動またはシャットダウンできなくなります。権限を 644 に変更する必要があります。操作は次のとおりです。

# ls -la /etc/my.cnf
-rwxrwxrwx 1 ルート ルート 1120 7月 31 10:28 /etc/my.cnf
# 
# 
# chmod 644 /etc/my.cnf
# 
# ls -la /etc/my.cnf
-rw-r--r-- 1 ルート ルート 1120 7月 31 10:28 /etc/my.cnf
#

/etc/my.cnf を確認し、インスタンスを再起動します。

151014 14:05:54 mysqld_safe mysqld は pid ファイル /data/mysql/data/yq-xg-dev122.pid から終了しました
151014 14:06:08 mysqld_safe /data/mysql/data のデータベースを使用して mysqld デーモンを起動しています
151014 14:06:08 [注意] プラグイン「FEDERATED」は無効になっています。
151014 14:06:08 InnoDB: InnoDB メモリヒープが無効になっています
151014 14:06:08 InnoDB: ミューテックスと rw_locks は GCC アトミック組み込み関数を使用します
151014 14:06:08 InnoDB: 圧縮テーブルは zlib 1.2.3 を使用します
151014 14:06:08 InnoDB: LinuxネイティブAIOの使用
151014 14:06:08 InnoDB: バッファプールを初期化しています。サイズ = 128.0M
151014 14:06:08 InnoDB: バッファプールの初期化が完了しました
151014 14:06:08 InnoDB: サポートされている最高のファイル形式は Barracuda です。
151014 14:06:08 InnoDB: バックグラウンドスレッドの開始を待機しています
151014 14:06:09 InnoDB: 1.1.8 が起動しました。ログ シーケンス番号 18872844901
151014 14:06:09 [警告] 'proxies_priv' エントリ '@ root@xinge122' は --skip-name-resolve モードで無視されます。
151014 14:06:09 [メモ] イベント スケジューラ: 0 件のイベントが読み込まれました
151014 14:06:09 [注記] /usr/local/mysql/bin/mysqld: 接続準備完了。
バージョン: '5.5.19-log' ソケット: '/tmp/mysql.sock' ポート: 3306 MySQL コミュニティ サーバー (GPL)

/etc/my.cnf の権限を通常のものに変更すると、MySQL インスタンスを正常に起動できることがわかります。

この事例から、次のようなインスピレーションを得ることができます。

Linux オペレーティング システムのルート ディレクトリ内のディレクトリとファイルの権限を変更することは非常に危険です。

たとえば、/etc/ssh ディレクトリの権限が変更されると、ssh は使用できなくなります。/etc/security または /etc/init.d/sshd ファイルが変更されると、root ユーザーはシステムにログインできなくなります。

したがって、システム権限、特に気軽に変更できない /etc/ ディレクトリ下のファイル権限には注意する必要があります。

開発と運用保守の両方を標準化する必要があり、ルートユーザーとしての直接操作は可能な限り避ける必要があります。ソフトウェアとアプリケーションの保存場所も別のディレクトリに配置し、各アプリケーションは別のユーザーが操作する必要があります。

システムファイルを安易に変更しないでください。特に、/etc/ 関連のシステムファイルを安易に変更しないでください。変更する場合は、まずテストして、変更する前に問題がないことを確認してください。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Linux での MySQL マルチインスタンスの展開とインストール ガイド
  • Linux での MySQL 8.0.25 のインストールと設定のチュートリアル
  • mysql8.0.23 Linux (centos7) のインストールの完全かつ詳細なチュートリアル
  • Linux で Docker を使用して MySQL をインストールする手順
  • Aliyun Linux のコンパイルとインストール php7.3 tengine2.3.2 mysql8.0 redis5 プロセスの詳細な説明
  • Linux環境にMySQLデータベースをインストールする詳細なチュートリアル
  • Linux で mysql-8.0.20 をインストールするための詳細なチュートリアル
  • Linux での MySQL のインストールに関するチュートリアル

<<:  HTML テーブル マークアップ チュートリアル (18): テーブル ヘッダー

>>:  Dockerで複数のSpringbootを実行するための詳細なチュートリアル

推薦する

MySQL 文字セットの概要

目次文字セット比較ルール4つのレベルの文字セットと比較規則3つのシステム変数このノートは主にMySQ...

リクエスト数を制限するために Ajax 同時リクエストを実装するために js を使用するサンプル コード

問題の説明: 非同期リクエストの数が不確定な場合、数百の http リクエストが瞬時に発生したときに...

中国語ウェブコンテンツを紹介する10の経験

<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...

Javascriptでビルダーパターンを実装する方法

概要ビルダー パターンは比較的単純なデザイン パターンであり、作成パターンに属します。定義: 複雑な...

Tomcatはスレッドプールを使用してリモート同時リクエストを処理します。

Tomcatが同時リクエストを処理する方法を理解することで、スレッドプール、ロック、キュー、および...

ホストがアクセスできるようにMySQLの権限を変更する方法

mysqlのリモートアクセス権を有効にするデフォルトでは、MySQL ユーザーにはリモート アクセス...

MySQL EXPLAIN出力列の詳細な説明

1. はじめにEXPLAIN ステートメントは、MySQL がステートメントを実行する方法に関する情...

mysqlを使用して、URLから返されたhttp GETリクエストデータを記録します。

ビジネスシナリオの要件と実装ロジックの分析ビジネスでは、HTTP GET を使用してデータを要求する...

LinuxシステムにDockerをインストールするプロセス

このブログでは、Docker をインストールするプロセスを簡単な手順で説明します。Docker のイ...

haslaylout と bfc 解析の理解

1. haslayout と bfc は IE 固有の標準属性です。 2. BFC はページ上の分離...

Dockerデータのバックアップとリカバリプロセスの詳細な説明

データのバックアップ操作は非常に簡単です。次のコマンドを実行します。 docker run --vo...

MySQLのファジークエリの要約

1. 一般的な使用法: (1)%で使用する% は 1 つ以上の文字のワイルドカードを表します。たとえ...

WeChatアプレットがSMSログインを実装

目次1. インターフェース効果のプレビュー2.uViewのインストール3.uViewの設定3.1 m...

Vue の基本的な手順の例のグラフィック説明

目次1. v-on指令1. 基本的な使い方2. 糖衣構文3. イベントパラメータ4. イベント修飾子...

Vueはechartsを使用して組織図を描画します

昨日、円形のプログレスバー (Vue 円形プログレスバーを参照してください) についてブログを書きま...