sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf在保存时显示只读不可打开更改
时间: 2023-12-09 08:05:27 浏览: 275
这个问题可能是因为你没有使用sudo权限运行vim编辑器。尝试使用以下命令以sudo权限运行vim:
```
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
```
如果还是无法保存更改,可以尝试使用以下命令更改文件的权限:
```
sudo chmod 777 /etc/mysql/mysql.conf.d/mysqld.cnf
```
然后再次尝试编辑并保存文件。完成后,记得将文件权限恢复为原来的权限:
```
sudo chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf
```
相关问题
虚拟机打开sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 是空白
看起来您试图通过更改`mysqld.cnf`文件的权限并重启MySQL来解决可能的安全问题,但MySQL仍然忽略了该世界可写配置文件。这可能是因为MySQL在启动时会优先读取安全设置,不接受来自用户的直接修改。
当您使用`vi`编辑器打开`mysqld.cnf`时,如果发现文件是空白的,那可能是之前已有的配置已经被覆盖或者是默认的新建文件。要解决这个问题,您可以按照以下步骤操作:
1. **确认文件内容**:
```bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
如果文件为空,可以尝试查找其他位置的配置文件,如 `/etc/mysql/my.cnf` 或 `/etc/mysql/conf.d/*`,这些文件通常包含MySQL的基本配置。
2. **备份现有配置**:
在继续之前,先创建一个配置文件的备份以防丢失重要设置:
```bash
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf backup_mysqld.cnf
```
3. **编辑安全配置**:
使用文本编辑器(如nano或vim),找到相关的配置项来调整权限限制,例如锁定特定的配置选项,避免世界可写:
```bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
找到与权限相关的部分,比如 `bind-address` 或 `secure-file-priv`,并确保它们设置了适当的访问级别。
4. **保存并关闭文件**:
编辑完成后,按`Ctrl+X`,然后输入`Y`保存更改,再输入`Enter`退出编辑器。
5. **重新加载配置**:
关闭MySQL服务后,可能会提示更新配置文件。如果提示,按照指示操作;如果没有提示,手动运行:
```bash
sudo service mysql stop
sudo service mysql start
```
6. **验证更改**:
再次尝试以root用户登录MySQL看看警告是否消失:
```bash
mysql -u root -p
```
请注意,随意修改配置文件可能导致服务器不稳定,建议在理解配置含义后再做改动。如有疑问,可以查阅MySQL官方文档[^1] 或者社区资源[^2]。
my.cnf、mysqld.cnf无配置,如何添加bind-address
如果您的 MySQL 服务器上没有 my.cnf 和 mysqld.cnf 配置文件,可以使用以下方法添加 bind-address 配置:
1. 使用 root 用户登录 MySQL 服务器。
2. 执行以下命令,打开 MySQL 的配置文件:
```
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
```
如果在该目录下没有找到 mysqld.cnf 文件,可以创建一个新的文件:
```
sudo touch /etc/mysql/mysql.conf.d/mysqld.cnf
sudo chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf
sudo chown root:root /etc/mysql/mysql.conf.d/mysqld.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
```
3. 在文件末尾添加以下内容:
```
[mysqld]
bind-address = 0.0.0.0
```
注意,这里的 0.0.0.0 表示允许任何 IP 地址连接 MySQL 服务器。如果您希望限制特定的 IP 地址连接 MySQL 服务器,可以将 0.0.0.0 替换成具体的 IP 地址或 IP 段。
4. 保存并退出配置文件。
5. 重启 MySQL 服务,使配置生效:
```
sudo systemctl restart mysql
```
完成以上步骤后,您应该能够通过远程连接访问 MySQL 服务器了。
阅读全文