docker容器内启动mysql服务,报错:New main PID 99 does not belong to service, and PID file is not owned by root.

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: docker容器内启动mysql服务,报错:New main PID 99 does not belong to service, and PID file is not owned by root.

从报错来看,大致意思是识别不到PID号99是服务,并且不属于root用户,拒绝使用。

系统 docker版本
CentOS7.6 18.09
[root@243-ceshi mysql_bakup]# uname -a
Linux 243-ceshi 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@243-ceshi mysql_bakup]# docker -v
Docker version 18.09.6, build 481bc77156
[root@243-ceshi mysql_bakup]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@243-ceshi mysql_bakup]# docker run -di --privileged=true --name mysql0106 -h vrgv-mysql -p 13306:3306 hub.vrgv.com/devops/mysql:20201109  /usr/sbin/init
8baf1a3adc1af7cf2a7557b6b2c7a4e068c4ba2122709aa3b3d394dc2ac90d01
[root@243-ceshi mysql_bakup]# docker exec -it mysql0106 bash
[root@vrgv-mysql /]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.32 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Bye
[root@vrgv-mysql /]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: activating (start) since Wed 2021-01-06 03:05:36 UTC; 1min 27s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 88 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 71 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/docker-8baf1a3adc1af7cf2a7557b6b2c7a4e068c4ba2122709aa3b3d394dc2ac90d01.scope/system.slice/mysqld.service
           └─99 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Jan 06 03:05:36 vrgv-mysql systemd[1]: Starting MySQL Server...
Jan 06 03:05:38 vrgv-mysql systemd[1]: New main PID 99 does not belong to service, and PID file is not owned by root. Refusing.
Jan 06 03:05:38 vrgv-mysql systemd[1]: New main PID 99 does not belong to service, and PID file is not owned by root. Refusing.

以上信息中,我的容器式可以正常开启的,并且能进入到mysql数据库中,但是服务是暂停的,报

New main PID 99 does not belong to service, and PID file is not owned by root. Refusing.”


然后查询资料,查找一个解决办法:

启动容器时,映射cgroup内核限制资源目录,具体原因还未确定

[root@243-ceshi mysql_bakup]# docker run -di --privileged=true --name mysql0106 -h vrgv-mysql -v /sys/fs/cgroup:/sys/fs/cgroup -p 13306:3306 hub.vrgv.com/devops/mysql:20201109  /usr/sbin/init
b7548c573fddafbc911918945b7ab3ad412cff1228221f475480ff8e734755c1
[root@243-ceshi mysql_bakup]# docker exec -it mysql0106 bash
[root@vrgv-mysql /]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: **active (running)** since Wed 2021-01-06 03:18:45 UTC; 11s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 80 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 59 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 82 (mysqld)
   CGroup: /system.slice/docker-b7548c573fddafbc911918945b7ab3ad412cff1228221f475480ff8e734755c1.scope/system.slice/mysqld.service
           └─82 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Jan 06 03:18:43 vrgv-mysql systemd[1]: Starting MySQL Server...
Jan 06 03:18:45 vrgv-mysql systemd[1]: Started MySQL Server.

启动容器时,添加映射目录参数 -v /sys/fs/cgroup:/sys/fs/cgroup解决此问题。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
关系型数据库 MySQL Linux
Linux下怎么快速部署MySQL服务,并使用
Linux下怎么快速部署MySQL服务,并使用
23 5
|
6天前
|
Docker 容器
如何使用Docker部署WPS Office服务并实现无公网IP远程处理文档表格(二)
使用Docker部署的WPS Office服务可以通过内网穿透工具Cpolar实现远程访问。首先,创建一个名为“wps office”的隧道,选择HTTP协议和3000端口,分配免费的随机域名,并指定中国地区。然后,通过Cpolar的管理界面获取HTTP公网地址,用以远程访问WPS Office。由于随机域名会变化,可以升级Cpolar套餐并保留一个二级子域名,确保长期稳定的远程访问。配置子域名后,更新隧道设置,完成固定公网地址的绑定,从而实现随时随地通过固定地址访问WPS Office。
|
1天前
|
缓存 Linux Docker
CentOS 7 下安装 Docker 及配置阿里云加速服务
CentOS 7 下安装 Docker 及配置阿里云加速服务
26 0
|
1天前
|
关系型数据库 MySQL 数据安全/隐私保护
mysql无法启动服务connect to server at ‘localhost‘ failed
mysql无法启动服务connect to server at ‘localhost‘ failed
|
4天前
|
关系型数据库 MySQL 数据库
Mysql数据库服务的启动与停止及数据库选择
Mysql数据库服务的启动与停止及数据库选择
10 0
|
6天前
|
安全 Linux 网络安全
如何使用Docker部署WPS Office服务并实现无公网IP远程处理文档表格(一)
在群晖NAS上使用Docker部署WPS Office并结合Cpolar内网穿透的步骤包括: 1. 通过SSH命令行拉取`linuxserver/wps-office`镜像。 2. 在群晖容器管理界面运行镜像,设置启动选项和端口映射。 3. 本地访问群晖IP:3000端口以使用WPS Office。 4. 安装Cpolar套件,手动添加并安装到群晖,通过9200端口访问其Web管理界面。 5. 使用Cpolar配置内网穿透,实现远程访问WPS Office。 这一过程允许用户即使在没有公网IP的情况下,也能通过Cpolar将内网的WPS Office服务暴露到公网,便于远程办公和文档处理。
|
1天前
|
SQL 运维 关系型数据库
|
1天前
|
存储 关系型数据库 MySQL
|
1天前
|
存储 关系型数据库 MySQL
|
2天前
|
关系型数据库 MySQL 数据库
Django与MySQL:配置数据库的详细步骤
Django与MySQL:配置数据库的详细步骤