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を実行するための詳細なチュートリアル

推薦する

css3 flexレイアウト justify-content:space-between 最後の行は左揃えになります

justify-content:space-betweenレイアウトを使用する場合、要素の最後の行に...

友達やグループを見つけるためのJavaScriptのLayim

現在、layuiの関係者はlayim友達検索ページの構造とスタイルを提供していません。私は個人的に非...

CSS3 での 2D および 3D 変換の実装

CSS3 は、要素の 2D 平面変換と視覚的な 3D 空間変換を実装します。2D 変換はより頻繁に使...

Linux で PCIe のバージョンと速度を確認する方法

PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...

mysql8.0 パスワードを忘れた場合の修正とネットコマンドのサービス名が無効になる問題

cmdにnet start mysqlと入力すると、プロンプトが表示されます: サービス名が無効です...

CSS3で実装されたスライドメニュー

結果:実装コード: <!DOCTYPE html><html class=&quo...

HTML で入力プロンプトのテキスト スタイルを変更するためのサンプル コード

多くのウェブサイトでは、入力ボックスにヒントテキストが表示されています。入力ボックスにヒントテキスト...

MySQLはinit-connectを使用してアクセス監査機能の実装を増やします

まず init-connect を通じて mysql 接続を初期化し、次にインスタンスに接続する必要...

Dockerスペースがいっぱいでコンテナに入れない場合の解決策

トラブル発生が突然で、業務も迫っていたため、現場のスクリーンショットを撮る時間がありませんでしたので...

node.js チュートリアルの Util モジュールの例の詳細な説明

目次タイプ判定から始める厳格な平等エラーファーストと約束デバッグと出力タイプ判定から始めるJavaS...

アイデアがWebプロジェクトを公開した後、Tomcatサーバーがプロジェクトとそのソリューションを見つけることができません

概要プロジェクトは正常に作成され、正常にデプロイされましたが、以下に示すように、Tomcat サーバ...

入力タイプ=ファイルスタイルを定義する方法

ファイルコントロールを美しくする理由は何ですか?他の子供たちはみんなきちんとしたきれいな服を着ている...

Vueグローバルカスタム命令の実践 モーダルドラッグ

目次背景実装のアイデア成果を達成する背景最近取り組んでいるプロジェクトは、Vue2 で構築されたプロ...

位置固定オフセット問題を解決する方法の詳細な説明

質問CSS 固定配置の position:fixed は非常に使いやすいです。ブラウザのビューポート...

js の hasOwnProperty のプロパティとインスタンスの使用法の詳細な説明

1. js は hasOwnProperty が不正に占有されることから保護しません。オブジェクトに...