如何在MariaDB和MySQL中禁用二进制日志记录?
禁用MariaDB和MySQL数据库中的二进制日志的步骤。
几天前,Geekflare无法访问,原因很简单-设备上没有剩余空间。观众们对此进行了数百次警报和邮件,但我当时正在旅行,所以无法及时采取行动。
这在Google Cloud日志中有记录。
Feb 13 15:58:35 yaoweibin snapd[1308]: daemon.go:379: started snapd/2.37.1 (series 16; classic) ubuntu/18.04 (amd64) linux/4.15.0-1027-gcp.
Feb 13 15:58:35 yaoweibin snapd[1308]: main.go:123: system does not fully support snapd: mkdir /tmp/sanity-mountpoint-464926152: no space left on device
Feb 13 15:58:35 yaoweibin systemd[1]: Started Snappy daemon.
对我来说,这真是个惊喜,因为Geekflare只是一个简单的博客,并没有存储或处理大量数据。因此,我开始调查,并发现/var/log/mysql
占用了总存储空间的大约50%。
root@yaoweibin:/var/log# du -sh mysql
9.4G mysql
root@yaoweibin:/var/log#
然后,列出这些文件。
-rw-rw---- 1 mysql adm 104860436 Feb 10 19:05 mariadb-bin.000105
-rw-rw---- 1 mysql adm 104869270 Feb 10 22:12 mariadb-bin.000106
-rw-rw---- 1 mysql adm 104868195 Feb 11 01:41 mariadb-bin.000107
-rw-rw---- 1 mysql adm 104859088 Feb 11 04:44 mariadb-bin.000108
-rw-rw---- 1 mysql adm 104862187 Feb 11 07:22 mariadb-bin.000109
-rw-rw---- 1 mysql adm 104860386 Feb 11 09:25 mariadb-bin.000110
-rw-rw---- 1 mysql adm 104867622 Feb 11 11:22 mariadb-bin.000111
-rw-rw---- 1 mysql adm 104871043 Feb 11 13:18 mariadb-bin.000112
-rw-rw---- 1 mysql adm 104873816 Feb 11 15:07 mariadb-bin.000113
-rw-rw---- 1 mysql adm 104858814 Feb 11 17:09 mariadb-bin.000114
-rw-rw---- 1 mysql adm 104858302 Feb 11 19:18 mariadb-bin.000115
-rw-rw---- 1 mysql adm 104859019 Feb 11 21:33 mariadb-bin.000116
-rw-rw---- 1 mysql adm 104860830 Feb 12 00:05 mariadb-bin.000117
-rw-rw---- 1 mysql adm 3298 Feb 12 02:58 mariadb-bin.index
-rw-rw---- 1 mysql adm 104873697 Feb 12 02:58 mariadb-bin.000118
-rw-rw---- 1 mysql adm 104259584 Feb 13 15:24 mariadb-bin.000119
-rw-rw---- 1 mysql adm 0 Feb 13 15:25 mariadb-bin.state
root@yaoweibin:/var/log/mysql#
那是二进制日志。
您可以考虑删除它们以恢复系统,但请记住它们会再次填满空间。因此,防止这种情况发生的最佳方法是指示MariaDB不记录日志。我没有副本实施,所以禁用二进制日志是可以的。
这是一个简单的一行配置。
如果使用MariaDB
- 登录到MariaDB正在运行的服务器
- 转到
/etc/mysql/conf.d
- 备份
mariadb.cnf
- 在[mysqld]指令下添加以下内容
skip-log-bin
- 保存配置文件
此时,您可以删除那些二进制日志文件并重新启动数据库。
如果使用MySQL
- 登录到MySQL服务器
- 转到/etc/my.cnf.d/
- 在
[mysqld]
指令中的mysql-server.cnf
文件中添加以下内容
skip-log-bin
- 保存文件并重新启动MySQL服务器
service mysqld stop
service mysqld start
现在,您可以删除/var/lib/mysql
下的这些二进制文件。希望这可以帮助到您。
如果您正在运行关键应用程序,那么您可能还想考虑使用进行性能优化的managed MySQL hosting。