首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:“无法通过套接字连接到本地MySQL服务器”/var/run/mysqld/mysqld.sock‘(2)’

错误:“无法通过套接字连接到本地MySQL服务器”/var/run/mysqld/mysqld.sock‘(2)’
EN

Unix & Linux用户
提问于 2019-10-09 13:25:20
回答 2查看 1.6K关注 0票数 3

我正在运行一个Ubuntu19.04发行版,并有一个Dockerfile,当我们到达步骤7;

代码语言:javascript
复制
Step 7/11 : RUN (/usr/bin/mysqld_safe &); sleep 5; mysqladmin -u root -proot create wordpress

我们得到了;

代码语言:javascript
复制
2019-10-09T12:18:34.365421Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket 
'/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

查看错误消息:mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

代码语言:javascript
复制
cookie@cookie-K501UX:~/code/docker$ ls -la /var/run/mysqld
total 8
drwxr-xr-x  2 mysql mysql  100 Oct  9 13:10 .
drwxr-xr-x 36 root  root  1060 Oct  9 13:10 ..
-rw-r-----  1 mysql mysql    6 Oct  9 13:10 mysqld.pid
srwxrwxrwx  1 mysql mysql    0 Oct  9 13:10 mysqld.sock
-rw-------  1 mysql mysql    6 Oct  9 13:10 mysqld.sock.lock

的确如此。和Check that mysqld is running

代码语言:javascript
复制
$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-10-09 13:26:21 BST; 8min ago

它是。如果套接字文件存在,并且MySQL守护进程正在运行,那么问题是什么?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2019-10-10 23:56:45

问题是,您正在等待5秒钟,并且可能需要6秒钟或更长时间。

在运行mysqladmin create wordpress之前,您必须检查MYSQL是否准备就绪。

所以您可以在mysqladmin ping中使用一个循环。

因此,RUN命令可以是

代码语言:javascript
复制
RUN (/usr/bin/mysqld_safe &); \
     while( ! mysqladmin ping ) ;do  sleep 1 ; date ; done ; \
     mysqladmin -u root -proot create wordpress
票数 2
EN

Unix & Linux用户

发布于 2019-10-10 09:56:28

有关将编译的最新Dockerfile,请参见:

代码语言:javascript
复制
FROM ubuntu:19.04

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get -y install \
 apache2 \
 php7.2 \
 php7.2-mysql \
 supervisor \
 wget

RUN echo 'mysql-server mysql-server/root_password password root' | debconf-set-selections && \
echo 'mysql-server mysql-server/root_password_again password root' | debconf-set-selections

RUN apt-get install -qqy mariadb-server

RUN wget http://wordpress.org/latest.tar.gz && \
 tar xzvf latest.tar.gz && \
 cp -R ./wordpress/* /var/www/html && \
 rm /var/www/html/index.html

RUN (/usr/bin/mysqld_safe &); sleep 5; mysqladmin -u root -proot create wordpress

COPY wp-config.php /var/www/html/wp-config.php
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

EXPOSE 80

CMD ["/usr/bin/supervisord"]
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/545919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档