OS:CentOS6.7
MySQL: 上記OSで標準リポジトリのyumでインストールできるもの(起動しないのでバージョンが見られずすみません。。)
HDD:2TB
外付けHDDにmysqlのdatadirを作りたいのですが
HDDのフォーマットをext4で完了し、適宜マウントをして
OS側ではファイルの生成削除も出来るように致しました
具体的なfstabの設定は以下の通りです
/dev/sdb1 /var/lib/mysql ext4 defaults,uid=mysql,gid=mysql,mode=0755 0 0
# mount -a
OSから書き込みも読み込みもできるので
/var/lib/mysqlのマウントには成功していると思います
mysqlのmy.cnfはデフォルトのまま
この時点ではまだ一度も起動していない状態です
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
そしてmysqlを起動すると
service mysqld start
MySQL Daemon failed to start.
mysqld を起動中: [失敗]
ログファイルを確認すると
180419 16:55:25 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
180419 16:55:25 [Warning] Can't create test file /var/lib/mysql/kvm.lower-test
180419 16:55:25 [Warning] Can't create test file /var/lib/mysql/kvm.lower-test
/usr/libexec/mysqld: Table 'mysql.plugin' doesn't exist
180419 16:55:25 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
180419 16:55:25 InnoDB: Initializing buffer pool, size = 8.0M
180419 16:55:25 InnoDB: Completed initialization of buffer pool
180419 16:55:25 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
180419 16:55:25 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
どうやら権限の問題で初期ファイルの生成に失敗しているっぽい?
/var/lib/mysqlフォルダのパーミッションを確認します
drwxr-xr-x. 5 mysql mysql 4096 4月 19 16:27 2018 mysql
権限は問題なさそうです
fstabの記述方式を変更してみる
cat /etc/passwd
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
mysqlは27番
/dev/sdb1 /var/lib/mysql ext4 defaults,uid=mysql,gid=mysql,mode=0755 0 0
↓数値に変更
/dev/sdb1 /var/lib/mysql ext4 defaults,uid=27,gid=27,mode=0755 0 0
これでもだめ
chown -R mysql:mysql /var/lib/mysql
chmod 0755 /var/lib/mysql
当然これもダメ
マウントちゃんとされてるか
df -Th
/dev/sdb1 ext4 1.8T 196M 1.7T 1% /var/lib/mysql
されています。。。
mysqlの初期ファイルを初回起動ではなく明示的に作ってみる
mysql_upgrade -u root -p
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
FATAL ERROR: Upgrade failed
当然作れない
マウント先を別のフォルダに移動してみる
my.cnf
datadir=/mnt/usb-hdd-mysql
socket=/mnt/usb-hdd-mysql/mysql.sock
fstab
/dev/sdb1 /mnt/usb-hdd-mysql ext4 defaults,uid=mysql,gid=mysql,mode=0755 0 0
だめ
755を777にしてみる
my.cnf
datadir=/mnt/usb-hdd-mysql
socket=/mnt/usb-hdd-mysql/mysql.sock
fstab
/dev/sdb1 /mnt/usb-hdd-mysql ext4 defaults,uid=mysql,gid=mysql,mode=0777 0 0
だめ
もう八方ふさがりとなりました
権限の問題っぽいのですが
外付けHDDにmysqlのdatadirの生成の仕方を分かる方がいましたら
ご教授頂ければと思います!
私の手順になにか不備がありましたらお教えくださいませ
ご確認よろしくお願い致します!
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.34%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2018/04/19 18:11
権限系の謎のエラーにはシンボリックリンクですね
本当にありがとうございます!!!