mysql data_dirの変更によって発生するエラー問題を解決する

mysql data_dirの変更によって発生するエラー問題を解決する

今日は、新しく購入した Alibaba Cloud ECS 環境 (Ubuntu 16.04 LTS) をセットアップしました。新しくマウントしたディスク (/mnt にマウント) に MySQL データを保存する必要があります。まず、MySQL サービスを停止し、MySQL データが保存されている場所を確認します。

vi /etc/mysql/mysql.conf.d/mysqld.cnf

データが保存されているディレクトリであるdatadir=/var/lib/mysql見つけたので、これをdatadir=/mnt/mysqlに変更して保存し、最後に mysql に保存されたデータを /mnt にコピーしました。

cp -r /var/lib/mysql /mnt
chown -R mysql:mysql /mnt/mysql

コピーが完了したら、すべての準備が整ったと思ったので、mysql サービスを開始しました。

systemctl で MySQL を起動します

しかし、起動に失敗したことがわかったので、mysql エラー ログを確認しました。

テール -f -n100 /var/log/mysql/error.log

エラー情報は次のとおりです。

[警告] テストファイル /mnt/mysql/iZwz9c03srb2lq9l374if5Z.lower-test を作成できません

よく考えてみると、mysql の設定に問題はないはずです。 apparmor の設定を確認します。

vi /etc/apparmor.d/usr.sbin.mysqld

次の構成が見つかりました:

# データディレクトリへのアクセスを許可する
/var/lib/mysql/r、
/var/lib/mysql/** rwk、

なんとも落とし穴です。mysql datadir的/var/lib/mysql変更したのですが、ここでもまだ制限されているので、次のように変更しました。

# データディレクトリへのアクセスを許可する
/var/lib/mysql/r、
/var/lib/mysql/** rwk、
/mnt/mysql/ r,
/mnt/mysql/** rwk、

保存。 apparmor サービスを再起動します。

サービスapparmorの再起動

次に、mysql サービスを再度開始します。

systemctl で MySQL を起動します

ついにサービスが正常に開始されました。 。 。

上記は、mysql data_dir の変更によって発生するエラー問題を解決するための編集者による紹介です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残してください。すぐに返信いたします。123WORDPRESS.COM ウェブサイトをご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • データディレクトリの変更によりMysqlが起動できない問題の解決方法

<<:  nginxプロキシsocket.ioサービスの落とし穴の詳細な説明

>>:  Node.js の TCP 接続処理のコア プロセス

推薦する

Dockerのセキュリティについて Docker-TLS暗号化通信の問題

目次1. Dockerのセキュリティ問題2. Dockerアーキテクチャの欠陥とセキュリティメカニズ...

XHTML 入門チュートリアル: Web ページのヘッダーと DTD

ヘッドと DTD はページには表示されませんが、Web ページの重要な要素です。 なぜ失敗したのでし...

リソースアップロード機能を実現するための SpringBoot+nginx の詳細な例

最近、画像、ビデオ、CSS/JS などの静的リソースを配置するために nginx を使用する方法を学...

JavaScript プロトタイプの詳細

目次1. 概要1.1 プロトタイプとは何ですか? 1.2 プロトタイプを入手する2. プロトタイプの...

CentOS 7.x に ZSH ターミナルをインストールする方法

1. 基本コンポーネントをインストールするまず、 yumコマンドを実行して、コードpullために必要...

Ubuntuのインストール Matlab2020b の詳細なチュートリアルとリソース

目次1. リソースファイル2. インストール2.1 詳細な手順2.1.1 ディスクイメージのマウント...

MySQL での and or クエリの優先度分析

これは見落とされがちな問題かもしれません。まず、次の点を明確にする必要があります。 MySQL では...

現在のMySQL接続数を表示する方法の詳細な説明

1. 現在のすべての接続の詳細情報を表示します。 ./mysqladmin -uadmin -p -...

Navicat 経由で MySQL にリモート接続する方法

Navicat を使用して IP 経由で直接接続すると、次のようなさまざまなエラーが報告されます: ...

XHTML ドキュメントで JavaScript と CSS を正しく使用する方法

ますます多くのウェブサイトで、XHTML が HTML4 に取って代わって急速に普及しています。しか...

HTML iframe で親ページと子ページ間の双方向メッセージングを実装する例

ある日、リーダーはメイン ページに iframe を埋め込み、親ページと子ページ間で双方向にメッセー...

Xtrabackup を使用した MySQL バックアップ プロセスの詳細な説明

目次01 背景02 はじめに03 ワークフロー04 いくつかの質問05 ファイルをバックアップする0...

Vue でシンプルな無限ループスクロールアニメーションを実装する例

この記事では主に、Vue でシンプルな無限ループスクロールアニメーションを実装し、みんなで共有する例...

Linux プロセスが占有するポート番号を表示する 6 つの方法

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

Linux での MySQL 5.7.16 無料インストール バージョンのグラフィック チュートリアル

この記事では、参考までにMySQL 5.7.16の無料インストール版のチュートリアルを紹介します。具...