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

推薦する

SSH ポート転送とは何ですか?何の役に立つの?

目次序文1. ローカルポート転送2. リモートポート転送3. 動的ポート転送(SOCKS5) 4. ...

border-radiusは要素に丸い境界線を追加する方法です

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...

JavaScript で localStorage を使用する方法

.NET の世界に参入したい開発者であれば、何が可能なのかを知る必要があります。 .NET Fram...

CSS3+HTML5+JSでブロックの縮小・拡大アニメーション効果を実現

最近、あるプロジェクトに取り組んでいたとき、自分のプロジェクトでは CSS3 のアニメーション技術を...

webpackでvue環境を構築する際の異常なエラーを解決する

目次まず、package.jsonを設定します次にwebpackツールをインストールしますwebpa...

登録フォームのデザインルール

随分前に「Patterns for Sign Up & Ramp Up」を読み終えました。今...

MySQLでトランザクションを開始する方法

序文この記事では主にMySQLでトランザクションを開始する方法について紹介します。関連情報については...

VMware に CentOS7 をインストールし (静的 IP アドレスを設定)、Docker コンテナ経由で mySql データベースをインストールする (非常に詳細なチュートリアル)

2 年生から、これらのインストールと設定の仕方を尋ねられました。簡単なチュートリアルを作成し、ここ...

UCenter ホームサイトに統計コードを追加

UCenter Homeは、ComsenzがリリースしたSNSサイト構築システムです。最新バージョン...

マークアップ言語 - フレーズ要素

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

VueのID認証管理とテナント管理の詳細な説明

目次概要ボタンレベルの権限アイデンティティ認証管理R/U 権限権限の更新テナント管理テナント切り替え...

docker で nginx+php+mysql を設定する方法

まず、方法を理解します。 docker exec を使用して Docker コンテナに入るDocke...

MySQL トリガーの原理と使用例の分析

この記事では、例を使用して、MySQL トリガーの原理と使用方法を説明します。ご参考までに、詳細は以...

MySQL innodb例外の修復に関する経験の共有

テスト用の MySQL ライブラリのセット。以前使用されていたバージョンは、centos6 のデフォ...

nuxt.js 複数の環境変数の設定

目次1. はじめに2. シナリオ3. 環境を整える3.1 環境変数の挿入4. 最後に1. はじめに一...