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の生成の仕方を分かる方がいましたら
ご教授頂ければと思います!
私の手順になにか不備がありましたらお教えくださいませ
ご確認よろしくお願い致します!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/19 09:11