データベースのデフォルトパスを変更した後にmysqlが起動できない問題の解決策

データベースのデフォルトパスを変更した後にmysqlが起動できない問題の解決策

序文

mysql がデフォルトのデータベース パスを変更したため、サービスを開始できませんでした。ログを確認したところ、ファイル権限にエラーがあることがわかりました。

変更されたディレクトリでは、ディレクトリの所有者として mysql が設定されました。コマンドラインから直接データベースを起動すると、すべてが正常になります。

私は万能の Google を使って、ついに外国人の投稿で理由を見つけました - SELINUX ポリシーの問題です!

すべてのバックグラウンド サービスには、対応するディレクトリに対する対応する権限が必要です。また、mysql のデフォルト パス /var/lib/mysql には、対応するポリシーが追加されています。パスが変更された後、対応するポリシーがないため、バックグラウンド プロセスは selinux によってファイルの読み取りをブロックされ、権限エラーが発生します。

方法は次のとおりです。

mysqlの場合、メソッドは次のとおりです。

chcon -R -t mysqld_db_t /db/mysql

APACHE の場合、方法は次のとおりです。

# chcon -R -h -t httpd_sys_content_t /www/web/

添付のchconコマンドヘルプ

chcon コマンド: オブジェクト (ファイル) のセキュリティ コンテキスト (ユーザー: ロール: タイプ: セキュリティ レベルなど) を変更します。

コマンド形式:

Chcon [オプション…] コンテキスト ファイル…..
Chcon [オプション…] –reference=PEF_FILES ファイル

例:

CONTEXTは設定するセキュリティコンテキストです

FILES オブジェクト (ファイル)

--reference 参照オブジェクト

PEF_FILES ファイルコンテキストを参照

FILES アプリケーションは、ファイル コンテキストを my コンテキストとして参照します。

オプションは次のとおりです。

-f 強制実行

-R オブジェクトのセキュリティコンテキストを再帰的に変更する

-r ROLE セキュリティコンテキストロールの設定を変更します

-t TYPE セキュリティコンテキストタイプの設定を変更する

-u USER セキュリティコンテキストユーザーの構成を変更する

-v は詳細情報を表示します

-l, --range=RANGE セキュリティコンテキストのセキュリティレベルを変更する

mysqlの場合、メソッドは次のとおりです。

chcon -R -t mysqld_db_t /db/mysql


この FTP を匿名ユーザーと共有する場合は、以下を有効にする必要があります。

chcon -R -t パブリックコンテンツt /var/ftp

設定した FTP ディレクトリへのファイルのアップロードを許可する場合は、SELINUX を設定する必要があります。

chcon -t public_content_rw_t /var/ftp/incoming

ユーザーが HTTP 経由でホーム ディレクトリにアクセスできるようにします。この設定は、ユーザーのホーム ディレクトリのホームページに限定されます。

setsebool -P httpd_enable_homedirs 1 chcon -R -t httpd_sys_content_t ~user/public_html

samba ディレクトリを他のユーザーと共有する場合は、以下を設定する必要があります。

chcon -t samba_share_t /ディレクトリ

rsync ディレクトリを共有する場合:

chcon -t public_content_t /ディレクトリ

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Mysql データベースの日付と日時型でデフォルト値 0000-00-00 を設定するときに発生するエラー問題の詳細な説明
  • Django でデフォルトのデータベースを mysql に変更する方法の例
  • MySQLインストール後のデフォルトデータベースの役割の詳細な説明

<<:  Virtualbox で Ubuntu 16.04 の起動時に共有ディレクトリを自動的にマウントする最良の方法

>>:  vue+springbootでログイン認証コードを実現

推薦する

JavaScript サンドボックスの探索

目次1. シナリオ2. サンドボックスの基本機能3. iframeの実装4. Webワーカーの実装5...

XHTML の一般的な構造タグ

構造本文、見出し、HTML、タイトル文章abbr、頭字語、アドレス、引用ブロック、br、引用、コード...

この記事ではCSSの組み合わせセレクターの使い方を説明します

CSS 組み合わせセレクターには、単純なセレクターのさまざまな組み合わせが含まれます。 CSS3 に...

JavaScript 履歴オブジェクトの説明

目次1. ルートナビゲーション2. 履歴状態管理API (1)ハッシュチェンジイベント(2)ポップス...

Webpack プロジェクトでローダー プラグインをデバッグする方法

最近、webpackの使い方を学んでいたときに、webpack-replace-loaderの設定正...

vue-nuxt ログイン認証の実装

目次導入リンク始めるコードを読み進めてくださいプロキシ設定傍受を要求する異なるプレフィックスを持つイ...

JavaScript で二分探索木を実装する

JavaScriptでの検索二分木実装は参考までに。具体的な内容は以下のとおりです。バイナリ検索木 ...

CSS3 フレックスボックス自動記入の書き方を詳しく解説

この記事では、主に CSS3 フレックス エラスティック ボックスの自動塗りつぶしの書き方について詳...

Web2.0: 情報過多の原因と解決策

<br />情報の重複、情報過多、情報強迫、パーソナライズされたカスタマイズ、検索エンジ...

Vue は Axios リクエスト フロントエンドのクロスドメイン問題をどのように解決するのか

目次序文1. クロスドメインの問題はなぜ発生するのでしょうか? 2. 解決策クロスオリジンリソース共...

MySQLデータ内の多数の改行と復帰に対する解決策

目次問題を見つける1. 改行と復帰を削除する方法2. SELECTクエリで「改行と復帰」を無視する方...

mysql5.7 でユーザーの初期パスワードを変更する方法

ユーザーが初めて MySQL データベースをインストールするとき、初期のルート パスワードを変更する...

JavaScript の Strict モードの詳細な説明

目次導入厳密モードの使用厳格モードの新機能例外を強制的にスローする変数の使用を簡素化する議論を単純化...

Dockerデータストレージの概要

この記事を読む前に、ボリューム、バインドマウント、tmpfs マウントの基本を理解しておいてください...

MySQL データ型 DECIMAL(N,M) における N と M の意味の詳細な説明

同僚から、MySQL データ型 DECIMAL(N,M) の N と M の意味を尋ねられました。言...