mysql - debian9下如何更改MySQL datadir
问题描述
所以我在我的专用 debian 9 服务器上安装了 MySQL 8.0。由于服务器的系统卷只有 20G,我想将数据目录更改为包含数据的第二个卷。Mysql 在这个阶段运行正常。
我的第二卷是“/mnt/web”下的mounter(Ext4,就像系统卷一样)
我创建了一个目录“/mnt/web/databases/mysql”,mysql用户对它有RWX权限。
这是我做的步骤:
- 停止mysql
- 更改配置文件中的 datadir
- 创建新目录,使用ACL给mysql RWX权限(用户+grp)
- 将旧目录内容复制到新目录内容
- 备份旧目录内容
- 重启mysql
它不会正确重启,我有这些错误:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2018-11-06 15:32:11 UTC; 2min 2s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 616 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
Process: 518 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 616 (code=exited, status=1/FAILURE)
Status: "SERVER_BOOTING"
Error: 13 (Permission denied)
Nov 06 15:32:11 ov-b6e882 mysqld[616]: 2018-11-06T15:32:11.541193Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.13) starting as process 616
Nov 06 15:32:11 ov-b6e882 mysqld[616]: 2018-11-06T15:32:11.563003Z 0 [Warning] [MY-010091] [Server] Can't create test file /mnt/web/databases/mysql/ov-b6e882.lower-test
Nov 06 15:32:11 ov-b6e882 mysqld[616]: 2018-11-06T15:32:11.563036Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /mnt/web/databases/mysql/ is case insensitive
Nov 06 15:32:11 ov-b6e882 mysqld[616]: 2018-11-06T15:32:11.563860Z 0 [ERROR] [MY-010172] [Server] failed to set datadir to /mnt/web/databases/mysql/
Nov 06 15:32:11 ov-b6e882 mysqld[616]: 2018-11-06T15:32:11.563902Z 0 [ERROR] [MY-010119] [Server] Aborting
Nov 06 15:32:11 ov-b6e882 mysqld[616]: 2018-11-06T15:32:11.570248Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.13) MySQL Community Server - GPL.
Nov 06 15:32:11 ov-b6e882 systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
Nov 06 15:32:11 ov-b6e882 systemd[1]: Failed to start MySQL Community Server.
Nov 06 15:32:11 ov-b6e882 systemd[1]: mysql.service: Unit entered failed state.
Nov 06 15:32:11 ov-b6e882 systemd[1]: mysql.service: Failed with result 'exit-code'.
我已经在论坛上进行了很多研究,也尝试了 mariadb,从头重新启动了 2 次,仍然到了这一点。Apparmor 没有 mysql 配置文件并且似乎没有安装,无论如何我在 grub 中禁用了它以确保,我真的不知道问题出在哪里。
我还尝试设置从旧目录到新目录的符号链接,似乎没有用。
我错过了什么或做错了什么吗?我真的迷路了,这些天这似乎是一个难以解决的常见问题......
解决方案
推荐阅读
- angular - RxJS:为什么订阅没有区别
- android - 发布一个使用房间而不暴露房间的库
- python - 如何评估多个值的 lambda 函数?
- java - 处理 http 多部分响应
- html - webkit 关键帧在 Safari 和 iPhone 中不起作用
- windows - Windows cmd.exe/batch:在一行中将计数器加一?
- business-process-management - 如何在 EPICOR ERP 中限制客户发货时的过度发货
- c++ - 在 C++11 中,我可以为非聚合类型实现聚合类型初始化,如构造函数,以及如何实现?
- bash - 使用 dd 写入图像后,如何挂载它以写入另一个文件?
- mysql - 查找重复值