我是这方面的新手,如果这个问题很愚蠢,我很抱歉,但 Mysql 服务一直崩溃。我在互联网上发现我应该编辑 my.cnf 文件并添加innodb_buffer_pool_size=64M
,但当我尝试时sudoedit /etc/mysql/my.cnf
,我得到的是sudoedit: /etc/mysql/my.cnf: editing symbolic links is not permitted
。
有人能帮我吗?我有 Ubuntu 18.04。我应该把那个 innodb 缓冲区放在哪里,那个大小可以吗?我找不到任何清楚且有帮助的东西。我还应该做什么来解决这个问题?:(
答案1
我知道这个帖子很旧了,但今天我也不得不编辑该文件。错误消息已经说明了发生了什么。如果您尝试编辑您在另一篇文章中看到的文件,则该文件实际上并不存在。如果列出该文件夹,您将看到它实际上是一个符号链接。就我而言:
my.cnf -> /etc/alternatives/my.cnf
因此,sudoedit /etc/mysql/my.cnf
您不应该编辑真正指出的文件sudoedit /etc/alternatives/my.cnf
答案2
尝试一下sudo nano /etc/mysql/my.cnf
。您遇到错误editing symbolic links is not permitted
只是因为/etc/mysql/my.cnf
只是指向文件的符号链接/etc/alternatives/my.cnf
。不要使用sudoedit
、编辑mysql.cnf
或nano
能够vim
跟踪符号链接的文本编辑器。
我的建议是,如果您的 RAM 小于 8 GB,则选择innodb_buffer_pool_size
大约 80% 的可用安装 RAM,如果您的 RAM 超过 8 GB,则选择 90%。一切都取决于您在特定情况下的具体情况。规则:越大,innodb_buffer_pool_size
MySQL 越快 - 是正确的。
因此,假设您有 8GB RAM,那么 50% 的 RAM 或 4GB 是开始的正确选择。如果此配置运行良好,请逐步将此值增加 10%,直至 RAM 的 80%。如果您发现您的交换空间已被充分使用,请停止增加此值并将其减少合理的数字。
最后,用 nano 文本编辑器打开 my.cnf 文件:
sudo nano /etc/mysql/my.cnf
并在文件末尾添加新行:
innodb_buffer_pool_size = 4G
按 nano CTRL+O
-> y
->Enter
并退出 -保存更改CTRL+X
。重新启动 mysql 服务以应用新的 mysql 配置:
sudo systemctl restart mysql.service
就这样。