更改 EC2 上的 MySQL 数据目录

更改 EC2 上的 MySQL 数据目录

我已经设置了一个 EC2 实例,并正在尝试将 MySQL 数据目录移动到已挂载的存储。

默认数据目录是:

/opt/bitnami/mysql/data

我已将该目录完整复制到

/mnt/mysql_data

然后我将my.cnf中的路径更改为以下内容:

datadir=/mnt/mysql_data

并重命名旧目录以确保我正在使用新目录。

我已经为 MySQL 授予了新目录的适当权限 - 但我甚至不认为 MySQL 正在尝试访问该目录。当我尝试重新启动 mysql 时,我收到有关先前数据目录的错误:

sudo /opt/bitnami/ctlscript.sh start mysql
111122 18:50:50 mysqld_safe Logging to '/opt/bitnami/mysql/data/mysqld.log'.
touch: cannot touch `/opt/bitnami/mysql/data/mysqld.log': No such file or directory
chown: cannot access `/opt/bitnami/mysql/data/mysqld.log': No such file or directory
111122 18:50:50 mysqld_safe Starting mysqld.bin daemon with databases from /opt/bitnami/mysql/data
/opt/bitnami/mysql/bin/mysqld_safe: 739: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
eval: 1: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
111122 18:50:50 mysqld_safe mysqld from pid file /opt/bitnami/mysql/data/ip-10-120-253-190.pid ended
/opt/bitnami/mysql/bin/mysqld_safe: 783: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent

我是不是漏掉了某个配置步骤?我见过其他遇到问题的人通过调整 apparmor 来解决问题,但我甚至没有他们应该更改的文件“/etc/apparmor.d/usr.sbin.mysqld”。另外,我的问题似乎不是 mysql 无法访问新目录 - 而是它仍在使用旧目录。

答案1

事实证明,亚马逊的控制脚本“/opt/bitnami/ctlscript.sh”正在 /opt/bitnami/mysql/scripts/ctl.sh 执行 mysql 配置脚本

令人烦恼的是,此脚本会覆盖 my.cnf 文件中的几个关键设置。在那里更新它们可以修复此问题。

答案2

您必须配置 mysql 以使用新的日志目录,请编辑 /etc/mysql/my.cnf(在本例中我使用的是 Debian)并更新

general_log_file = /mnt/data/log

祝你好运。

相关内容