質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • PHP

    20290questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    5841questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Raspberry Pi

    797questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

外部HDDへのMysqlデータベース移行におけるsocketエラー

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 312

ktux_s

score 3

 やりたいこと

Rasberry Pi 3にインストールしたMysql(mariaDB)のデータベースディレクトリを外付けHDDに移行することを考えています。
現状はデフォルトの設定で、以下のディレクトリにデータベースファイルがあります。
/var/lib/mysql
このディレクトリを次の外付けHDDディレクトリへの移行を試みています。
/media/pi/mysqldb
/media/pi/mysqldbはfstabに以下の記述をすることでマウントしています。
/dev/sda5       /media/pi/mysqldb        ext4    defaults        0       0

デフォルトのファイル構成をあまりいじりたくないのでシンボリックリンクによる移行が一番簡単かと思い、次のコマンドを実行し、移行を行いました。

pi@raspberrypi:/var/lib $ sudo systemctl stop mysql.service
pi@raspberrypi:/var/lib $ sudo mv /var/lib/mysql /media/pi/mysqldb
pi@raspberrypi:/var/lib $ ln -s /media/pi/mysqldb/mysql mysql
pi@raspberrypi:/var/lib $ sudo systemctl start mysql.service


するとうまく起動しなくなり、エラーが発生します。

pi@raspberrypi:/var/lib $ journalctl
1月 11 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] /usr/sbin/mysqld (mysqld 10.0.28-MariaDB-2+b1) starting as process 19578 ...
 1月 11 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [ERROR] mysqld: Can't create/write to file '/media/pi/mysqldb/mysql/aria_log_control' (Errcode: 13
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [ERROR] mysqld: Got error 'Can't create file' when trying to use aria control file '/media/pi/mysqld
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [ERROR] Plugin 'Aria' init function returned error.
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed.
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Using mutexes to ref count buffer pool pages
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: The InnoDB memory heap is disabled
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Compressed tables use zlib 1.2.8
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Using Linux native AIO
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Not using CPU crc32 instructions
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Initializing buffer pool, size = 128.0M
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Completed initialization of buffer pool
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Highest supported file format is Barracuda.
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: 128 rollback segment(s) are active.
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Waiting for purge to start
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.32-79.0 started; log sequence number 1
 1月 11 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] Plugin 'FEEDBACK' is disabled.
 1月 11 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [ERROR] Aria engine is not enabled or did not start. The Aria engine must be enabled to continue a
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [ERROR] Aborting
 111 19:16:15 raspberrypi mysqld[19579]:
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: FTS optimize thread exiting.
 111 19:16:15 raspberrypi mysqld[19579]: 180111 19:16:15 [Note] InnoDB: Starting shutdown...
 111 19:16:17 raspberrypi mysqld[19579]: 180111 19:16:17 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
 111 19:16:18 raspberrypi mysqld[19579]: 180111 19:16:18 [Note] InnoDB: Shutdown completed; log sequence number 18054965
 1月 11 19:16:18 raspberrypi mysqld[19579]: 180111 19:16:18 [Note] /usr/sbin/mysqld: Shutdown complete
 1月 11 19:16:18 raspberrypi mysqld[19579]:
 1月 11 19:16:18 raspberrypi mysqld_safe[19630]: mysqld from pid file /var/run/mysqld/mysqld.pid ended
 1月 11 19:16:46 raspberrypi /etc/init.d/mysql[19883]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
 1月 11 19:16:46 raspberrypi /etc/init.d/mysql[19883]: [61B blob data]
 1月 11 19:16:46 raspberrypi /etc/init.d/mysql[19883]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such fi
 1月 11 19:16:46 raspberrypi /etc/init.d/mysql[19883]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
 111 19:16:46 raspberrypi /etc/init.d/mysql[19883]:
 111 19:16:46 raspberrypi mysql[19406]: Starting MariaDB database server: mysqld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!
 111 19:16:46 raspberrypi sudo[19400]: pam_unix(sudo:session): session closed for user root
 111 19:16:46 raspberrypi systemd[1]: mysql.service: Control process exited, code=exited status=1
 111 19:16:46 raspberrypi systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.


socketファイルがうまく生成されていないようですが、起動時に読み込まれると考えられるcnfファイルは/etc/mysqld/mariadb.conf.d/50-server.cnfで

.
.
.

[mysqld]

#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

.
.
.

となっているため、socketの生成にはあまり関係してないように思われます。
シンボリックリンク作成前ではmysql起動時に/var/run/mysqldにmysqld.sockとmysqld.pidが生成されていましたが、リンク作成後は生成されなくなりました。
なおtouch mysqld.sockとしてsocketファイルを作成した場合のエラーは

 111 20:57:27 raspberrypi /etc/init.d/mysql[21906]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111 "Connection refused")'


となっています。
どのようにすればmysqlのデータベースを外付けHDDに移行できるのでしょうか?

 仕様

  • OS
pi@raspberrypi:~ $ lsb_release -a
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.3 (stretch)
Release:        9.3
Codename:       stretch
  • パーミッション
pi@raspberrypi:/media/pi $ ls -l
drwxrwxrwx 3 mysql mysql  4096  110 17:07 mysql
pi@raspberrypi:/media/pi $ ls -l | grep mysql
lrwxrwxrwx 1 mysql myaql 23  16 13:02 mysql -> /media/pi/mysqldb/mysql/
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

つchmod a+rX /media /media/pi /media/pi/mysqldb

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/12 00:17

    以上のコマンドを実行したところmysqlがうまく起動できました。
    /media /media/piには他のディレクトリやファイルも存在しているため、マウントポイントを変更して試してみようと思います。
    ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    20290questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    5841questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Raspberry Pi

    797questions

    Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。