相关文章推荐
谦虚好学的鸵鸟  ·  Weblogic CVE ...·  1 月前    · 
深沉的金鱼  ·  引用程序集 - .NET | ...·  11 月前    · 
悲伤的橙子  ·  python - ResultSet ...·  1 年前    · 

【MySQL】使用docker安装MySQL时的报错:Can't connect to local MySQL server through socket '/var/run/mysqld/mysql

最新推荐文章于 2023-04-26 16:54:11 发布
最新推荐文章于 2023-04-26 16:54:11 发布 19122
root1@ubuntu:~$ mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
  • 上面错误提示没有mysqld.sock文件,然后在网上找了许多文章说要配置/etc/mysql/mysql.conf.d目录下的mysqld.cnf文件,然而我改了半天也没有用最后看到一篇文章才把问题解决掉的如下:
1、先创建好mysql容器
sudo docker run -p 3306:3306 --name mysql   -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
2、进入容器
sudo docker exec -it mysql /bin/bash
3、登陆容器内数据库
mysql -u root -p 设置的密码
  • 我是创建好容器后直接登录数据库然后就会出现上面的问题,我是第一次用docker安装mysql,真是搞了我一天的时间、、、

网友提供解决方案如下:

本地宿主机通过mysql命令连接mysql Docker容器中的服务器报错 ERROR 2002 (HY000)

原创 创建时间:2018-12-29  访问量:532  赞:0  踩:0

1、具体所错与下所示:

[user@cluster2 ~]$ mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

2、根据报错提示,是本地mysql连接服务器时,没有找到/var/lib/mysql/mysql.sock文件。那么从这入手,我们看到mysql容器中的服务器启动后的mysql.sock文件在哪。

我们进入mysql容器中看看:

sudo docker exec -it mysql /bin/bash

查看mysql配置文件my.cnf

root@9e313681fc3e:/# cat /etc/mysql/my.cnf

我们看到下面的一些配置:

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

这里可以看到mysqld.sock的目录是在/var/run/mysqld目录下,但是这个目录,我们并没有挂载主机目录,下面我们重新运行mysql容器,挂载相应的容器,如下所示:

sudo docker run --name=mysql -it -p 3306:3306 -v /opt/data/mysql/mysqld:/var/run/mysqld -v /opt/data/mysql/db:/var/lib/mysql -v /opt/data/mysql/conf:/etc/mysql/conf.d -v /opt/data/mysql/files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456 --privileged=true -d mysql

使用以上命令运行mysql容器,这里使用/opt/data/mysql中的相关目录挂载到mysql容器中,启动容器之后你会发现mysql服务器无法正常启动,报错如下:

2018-12-29T06:25:09.480604Z 0 [ERROR] [MY-010273] [Server] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2018-12-29T06:25:09.480619Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file.
2018-12-29T06:25:09.480625Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-12-29T06:25:11.289786Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.
[user@cluster2 mysql]$ sudo docker logs mysql
2018-12-29T06:25:09.095301Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2018-12-29T06:25:09.095434Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.13) starting as process 1
2018-12-29T06:25:09.478963Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-12-29T06:25:09.480604Z 0 [ERROR] [MY-010273] [Server] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2018-12-29T06:25:09.480619Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file.
2018-12-29T06:25:09.480625Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-12-29T06:25:11.289786Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.

说是无法创建:Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock。这说明本地的/opt/data/mysql/mysqld目录,mysql容器中无权限防问。

注意:这里的/opt/data/mysql目录下的所示目录都是mysql容器启动时自动创建的,这里只有db目录的用户和组是:polkitd input,其它的就是root root,因此,我们要将其它几个目录的用户和组都改成polkitd input。命令如下:

cd /opt/data
sudo chown -R polkitd:input mysql

这样,删除mysql docker 容器。重新创建:

sudo docker rm mysql
sudo docker run --name=mysql -it -p 3306:3306 -v /opt/data/mysql/mysqld:/var/run/mysqld -v /opt/data/mysql/db:/var/lib/mysql -v /opt/data/mysql/conf:/etc/mysql/conf.d -v /opt/data/mysql/files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=123456 --privileged=true -d mysql

这样容器中的mysql就能正常运行了。

3、本地主机连接容器的mysql时,需要查到 /var/lib/mysql/mysql.sock。我们启动mysql容器后,在/opt/data/mysql/mysqld目录下有一个mysqld.sock。我们要把这个文件链接到本地主机的var/lib/myql目录中。

sudo ln -s /opt/data/mysql/mysqld/mysqld.sock /var/lib/mysql/mysql.sock

这样在运行mysql -uroot -p输入密码就能正常连接,docker容器中的mysql服务了。

4、本地主机只需要安装mysql-community-client包就可以了。具体参考百度。

【MySQL】使用docker安装MySQL时的报错:Can't connect to local MySQL server through socket '/var/run/mysqld/mysql Ubuntu使用docker安装完mysql后登录时会遇到如下错误root1@ubuntu:~$ mysql -uroot -pEnter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such fi... 二、启动镜像 代码如下:docker run  -d –name mysql -v /data/datadir:/var/lib/mysql -v /etc/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:tag
nacos 密码已经修改过了:jzkj@nacos 端口8858/3316 直接启动:docker-compose -f example/standalone-mysql-8.yml 修复漏洞:Nacos 集群反序列化漏洞 一、漏洞概述 2023 年 6 月 7 日,Nacos 发布新版本,修复了一处远程代码执行漏洞,所 属厂商:alibaba,漏洞编号:暂无,漏洞危害等级:高危。 Nacos 是一个开源的、易于使用的动态服务发现、配置和服务管理平台, 适合构建云原生应用。它提供了一种统一的数据管理和服务发现解决方案。在 Nacos 集群处理部分 Jraft 请求,攻击者可以无限制使用 hessian 进行反序 列化利用,最终实现代码执行。该漏洞仅影响 7848 端口。 二、受影响版本 1.4.0 <=Nacos<1.4.6 2.0.0 <=Nacos<2.2.3 三、修复建议 官方已发布新版本中修复上述漏洞,受影响用户请尽快升级到安全版本。 漏洞修复版本: Nacos >= 1.4.6 Nacos >= 2.2.3
第二步 启动镜像 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456  -d mysql:8.0.20 查看是否启动成功 docker ps -a 第三步 启动成功后,进入容器内部拷贝配置文件,到宿主主机。 docker cp  mysql:/etc/mysql /mnt/sda1/mysql8.0.20 拷贝容器的 /etc/mysql目录到 主机目录/mnt/sda1/mysql8. 现如今不管什么服务和应用基本都可以在docker里跑一跑了,但是在我个人的印象中,像数据库这种比较重要大型且数据容易受伤的应用是不适合在docker里跑的。但是也有很多人尝试在docker中跑mysql等数据库,所以也试着尝试一下。(好吧,重点是领导喜欢~~) 获取镜像: mysql的镜像可以自己用dockerfile制作一个,或者直接到官方的docker镜像库中下载,本文用的是官方镜像。 # docker pull mysql # docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/mysql latest d9
连接mysql候报这个错误。 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (111) 解决办法如下: 首先进入容器。 ###cd到mysqld文件夹下,命令如下: cd /var/run/mysqld/ ls查看一下,会看到这几个文件:mysqld.pid mysqld.sock mysqld.sock.lock 将mysqld.sock删除
mysql命令运行报错:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘
一个很久没用的服务器,服务器上已安装mysql,并且通过sqlyog3306端口可以正常访问。 然而我直接在命令行里面输入 mysql -uroot -p 想直接在服务器里面连接mysql候,报错: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 查了一下,是因为/var/run/mysqld/mysqld.sock这个文件的路径不对。 进到 mysql
ERROR 2002 (HY000):Can’t connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock’解决方案(Ubuntu) 当mysql不能登录的使用以下方法解决: 1. 在终端查看mysql相关进程号 ps -u mysql(登录不上的候可能会有多个与mysql相关的进程) 2. 查看进程...
ubuntu 异常死机,强制关机后再次开机,网络未激活。 在虚拟网络编辑器,重新设置了网络之后。打开mysql遇到如下问题: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ 原因:/etc/mysql/mysql.conf.d目录下的mysqld.cnf文件,打开如下: 可以看到:bind-address = 本机ip. 虚拟机重启后ip会改变。
报错信息: ”Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http:///var/run/docker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied“ docker mannual: Manage Docker as a non-root user The docker daemon
sudo apt update // 更新软件源 sudo apt install -y docker.io // 安装docker sudo usermod -aG docker leo // 添加当前用户leo到docker用户组,然后重启WSL,docker用户组为安装docker自动创建 sudo service docker start // 启动docker 安装docker并启动后,试运行查看docker本地镜像命令docker images,结果报
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 通过 service docker restart 尝试没有变化, 查看 docker 的日志 tail -5f /var/log/upstart/docker.log 发现 time=2017-04-
刚开始编译安装Mysql候,都弄完了以后总是出错,很是郁闷,而且这个问题我在几个机器上都遇到过。今天查网络,终于弄明白是怎么回事了,原来是权限设置不对,虽然是所有者权限了,但是忘记设置所属组了。所以错在这里,望大家遇到童言的问题多检查检查,这么马虎,用了这么长间才弄好,惭愧啊         以下是操作记录,从make install 完成以后开始记录,同后边跟着一个网友的文章,忘记出处
解决docker的Get https://registry-1.docker.io/v2/: net/http: request canceled 报错 没看过这么有个性的昵称啊: "registry-mirrors": ["http://hub-mirror.c.163.com"]