由于需要从 Ubuntu Bionic 升级到 Ubuntu Focal,我通过简单地继承原始的 /var/lib/mysql 目录,从服务器 5.7(后来推导)升级到 8.0,也就是说,我将这些文件保留在原来的位置(之后对该目录进行备份)。为了消除原始配置文件 (my.cnf) 中发现的一些不兼容性,我清除了旧软件包中的所有内容,并使用其软件包附带的配置启动了新的 8 服务器。
显然服务器工作正常,也就是说我没有在 /var/log/mysql/error.log 中发现任何具体的抱怨,并且网站正在找到他们期望的数据。
但是几天后我发现磁盘空间完全或几乎耗尽。我释放了一些空间,注意到 /var/lib/mysql 从大约 38G 增长到了 100G 以上(我在 /var/lib 中发出了命令 du -sh * ),并且仍在增长。
我做错了什么?也许我按照我提到的方式升级服务器犯了一个很大的错误?
我尝试恢复原来的 /var/lib/mysql 并再次启动服务器,但它的大小无论如何都会增加。
提前致谢!
安德里亚
--- 更新 ---
事实证明,在 MySQL 8.0 之前的版本中,二进制日志记录默认是禁用的。现在情况已不再如此。我在
skip-log-bin
中使用 /etc/mysql/mysql.conf.d/mysqld.cnf
进行了解决(操作系统是 Ubuntu Focal Fossa)。
也许其他人知道就地修复。我的解决方案是按照此处:
所述进行备份和恢复# du -sh /var/lib/mysql
141G mysql/
# mysqldump -u root --password=password database_name > database_name.sql
# du -sh database_name.sql
62M database_name.sql
# mv /var/lib/mysql /var/lib/mysql.old
# mkdir /var/lib/mysql
# mysql -u root --password=password -e "create database database_name"
# mysql -u root --password=password database_name < database_name.sql
# du -sh /var/lib/mysql/
402M mysql/
当然,请将数据库名称及其用户名/密码凭据替换为您的设置。当您确信数据已全部恢复后,请继续删除
/var/lib/mysql.old
。