データベースのデフォルトパスを変更した後に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でログイン認証コードを実現

推薦する

知っておくべき 7 つのネイティブ JS エラーの種類

目次概要1. 範囲エラー2. 参照エラー3. 構文エラー4. タイプエラー5. URIエラー6. 評...

Eclipseを使用してMySQLデータベースに接続する方法を説明します

序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...

異なるドメイン名への PC または携帯電話のアクセスを区別するように Nginx を構成する方法

新しい公式サイトはオンラインですが、携帯電話で新しい公式サイトにアクセスすると、エクスペリエンスが非...

Dockerコンテナ内の設定ファイルの変更の実装

1. コンテナに入るdocker run [オプション] イメージ名 [起動コンテナに渡されるコマン...

HTML ウェブページでのアンカー(名前付きアンカー)の使用の概要

以下の情報はインターネットから収集したものです1. アンカーは、Web ページ作成におけるハイパーリ...

JavaScript のディープコピーの落とし穴

序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...

JavaScript プロトタイプのデータ共有とメソッド共有の実装を調べる

データ共有プロトタイプにはどのようなデータを書き込む必要がありますか?共有する必要があるデータはプロ...

HTML メタタグの小さなコレクション

<Head>……</head> は <HTML> のファイル ヘ...

VMware Workstation 15 Pro インストール ガイド (初心者向け)

01. VMware Workstation Pro 15 のダウンロードダウンロード: VMwa...

HTML テーブルタグチュートリアル (45): テーブル本体タグ

<tbody> タグは、テーブル本体のスタイルを定義するために使用されます。基本構文 &...

HTMLの基礎を徹底解説(第1部)

1. WEBを理解するWeb ページは主にテキスト、画像、ハイパーリンクなどの要素で構成されていま...

JavaScript を使用してタイムラインとアニメーション効果を実装するためのサンプル コード (フロントエンドのコンポーネント化)

目次コードのクリーニングJavaScript の「フレーム」 「フレーム」の実装方法1. 間隔を設定...

Docker用国産イメージウェアハウスの使い方

1. 問題の説明何らかの理由により、中国でのDockerイメージのダウンロード速度は特に遅くなります...

Douyin ロゴを作成する手順の CSS3 分析

「Tik Tok」も大人気で、ユーザー数は7億人と言われています。今日は、注目を集めるためにTikT...