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 接続処理のコア プロセス

推薦する

Reactのヒントはフックの依存関係の問題を解消する方法を教えます

reactプロジェクトで非常に一般的なシナリオ: const [watchValue、setWatc...

MySQL の null と not null、null と空の値の違いの詳細な説明 ''''

MySQL を長い間使用してきた多くの人は、これら 2 つのフィールド属性の概念をまだよく理解して...

Tomcat で JNDI データ ソースを構成する 3 つの方法

これまでの仕事では、開発サーバーは一般的にTomcatでした。データソースは、多くの場合、appli...

Linux Samba サーバーの超詳細なインストールと構成 (問題解決付き)

目次Samba サーバーの紹介Samba サーバー コンポーネントSamba サーバー関連の設定ファ...

Navicat Premium15 でクラウド サーバーに接続する際のデータベースの問題と落とし穴

クラウドサーバーを使用するとデータベースに接続できる場合もありますが、Navicat Premium...

Tomcatの全体構造の簡単な紹介

Tomcat は Web コンテナとして広く知られています。Java を学び始めたときから現在の仕事...

Sublime / vscode による HTML コード生成の迅速な実装

目次基本的なHTML構造div とクラス名のショートカット キーを生成するクラス名を持つdiv ID...

axios リクエストのカプセル化に基づく Vue アプリケーションのサンプルコード

目次axiosとは何ですか? Axios リクエストタイプ? Axiosはデフォルトのカスタム構成を...

Pure CSS と Flutter はそれぞれブリージング ライト効果を実現します (サンプル コード)

前回、非常に熱心なファンから、月を呼吸する光の効果にできるかどうか尋ねられました。月の大きさの写真が...

mysql indexof関数の使用手順

以下のように表示されます。 LOCATE(部分文字列、文字列)文字列 str 内の部分文字列 sub...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル (Win10 Home バージョン 64)

超初心者の私は、MySQL を学び始めたばかりで、インストール プロセス中に多くの問題に遭遇しました...

JSはGMTとUTCのタイムゾーンを完全に理解しています

目次序文1. GMT GMTとはGMTの歴史2. UTC UTCとはUTC は次の 2 つの部分で構...

CentOS 8 に Docker をインストールする詳細なチュートリアル

1. 以前のバージョン yum 削除 docker docker-client docker-cli...

Linux に nodejs 環境とパス構成をインストールするための詳細な手順

Linux に Node.js をインストールする方法は 2 つあります。1 つは簡単で、解凍して使...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...