修改mysql配置文件vim commend not found 和安装vim -Temporary failure resolving 'deb.debian.org和'docker联网问题解决

本文描述了在Docker容器内的MySQL配置修改过程,包括开启binlog以支持Canal微服务监听数据库变更,以及解决无法编辑配置文件的问题。通过配置DNS解决了apt-get更新和安装vim时的网络连接错误,最终成功在容器内安装了vim。

这样要从开始mysql-binlog 说起了。
问题描述:
1 起因:修改docker容器mysql配置文件开启binlog实现canal微服务监听数据库的改变。发现指定/etc/mysql/my.cnf不能vim修改编辑,只能查看。
2 因为是在docker容器内,他就像个虚拟机,跟外界没有关联,要安装vim包才可以进行操作。如下命令
apt-get update
apt-get install vim
3 执行完报错如下:

Err:7 http://deb.debian.org/debian buster/main amd64 Packages
Cannot initiate the connection to deb.debian.org:80 (2a04:4e42:1a::645). - connect (101: Network is unreachable) Could not connect to deb.debian.org:80 (151.101.110.133). - connect (111: Connection refused) [IP: 151.101.110.133 80]
Err:8 http://deb.debian.org/debian buster-updates/main amd64 Packages
Cannot initiate the connection to deb.debian.org:80 (2a04:4e42:1a::645). - connect (101: Network is unreachable) [IP: 151.101.110.133 80]
Fetched 458 kB in 7min 23s (1034 B/s)
Reading package lists… Done
W: Failed to fetch http://deb.debian.org/debian/dists/buster/main/binary-amd64/Packages Cannot initiate the connection to deb.debian.org:80 (2a04:4e42:1a::645). - connect (101: Network is unreachable) Could not connect to deb.debian.org:80 (151.101.110.133). - connect (111: Connection refused) [IP: 151.101.110.133 80]
W: Failed to fetch http://deb.debian.org/debian/dists/buster-updates/main/binary-amd64/Packages Cannot initiate the connection to deb.debian.org:80 (2a04:4e42:1a::645). - connect (101: Network is unreachable) [IP: 151.101.110.133 80]
W: Some index files failed to download. They have been ignored, or old ones used instead.

root@7ccd5ffbc1e1:/etc/mysql# apt-get install vim
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package vim is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘vim’ has no installation candidate

4 apt-get update 报错失败是因为没有配置dns的原因

cd /etc/docker
touch daemon.json
添加
{
“dns”: [“8.8.8.8”, “114.114.114.114”]
}

重启服务
systemctl restart docker
重新执行2更新安装即可成功,如下:

root@7ccd5ffbc1e1:/etc/mysql# apt-get update
Hit:1 http://repo.mysql.com/apt/debian buster InRelease
Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]
Hit:4 http://security.debian.org/debian-security buster/updates InRelease
Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [7380 B]
Fetched 3480 kB in 18s (198 kB/s)
Reading package lists… Done
root@7ccd5ffbc1e1:/etc/mysql# apt-get install vim
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
vim-common vim-runtime xxd
Suggested packages:
ctags vim-doc vim-scripts
The following NEW packages will be installed:
vim vim-common vim-runtime xxd
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 7390 kB of archives.

### 解决 Linux 上安装 Vim 时遇到的 'Temporary Failure Resolving' 问题 当在 Ubuntu 或其他基于 Debian 的系统上执行 `sudo apt-get install vim` 命令时,如果出现 `'Temporary failure resolving'` 错误,通常是因为系统的 DNS 配置存在问题。以下是具体的解决方案: #### 方法一:修改 `/etc/resolv.conf` 可以通过手动编辑 `/etc/resolv.conf` 来指定可靠的 DNS 服务器。例如,可以使用 Google 提供的公共 DNS 地址 (8.8.8.8 8.8.4.4),或者阿里云提供的 DNS 地址 (223.5.5.5 223.6.6.6)[^1]。 ```bash echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf ``` 需要注意的是,在某些情况下(如 Raspberry Pi),直接修改该文件可能不会生效,因为其内容会被动态覆盖。此时应考虑方法二中的建议[^3]。 --- #### 方法二:配置静态 DNS 设置 对于那些 `/etc/resolv.conf` 被动态管理的情况,可以在网络接口配置文件中设置固定的 DNS 服务器。具体操作如下: 1. 编辑 `/etc/dhcpcd.conf` 文件并添加以下内容: ```plaintext static domain_name_servers=8.8.8.8 8.8.4.4 ``` 2. 执行命令重启服务以应用更改: ```bash sudo service dhcpcd restart ``` 此方法适用于像 Raspberry Pi 这样的设备环境,能够有效防止 `/etc/resolv.conf` 中的内容被自动重写。 --- #### 方法三:针对 Docker 用户的特殊处理 如果是运行在一个由 Docker 创建的环境中,则需要调整 Docker 的默认 DNS 设置来解决解析错误。一种常见的方式是在启动容器时显式传递参数给它使用的 DNS 服务器地址;另一种方式则是全局修改主机上的 Docker Daemon JSON 配置文件 (`/etc/docker/daemon.json`) 并加入类似下面这样的字段[^4]: ```json { "dns": ["8.8.8.8", "8.8.4.4"] } ``` 之后记得重新加载 docker daemon 配置以及测试新的镜像构建过程是否正常工作。 --- 以上三种途径都可以帮助克服因 DNS 故障引发的各种包管理器相关难题,包括但不限于安装软件过程中遭遇 “temporary failure resolving” 类型的消息提醒情况发生。 ```bash # 测试 DNS 是否可用 nslookup google.com ping -c 4 packages.prosody.im ``` 上述命令可以帮助验证当前系统的 DNS 功能状态如何,从而进一步确认所采取措施的效果[^2]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值