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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 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解决此问题。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
关系型数据库 MySQL 数据安全/隐私保护
docker应用部署---MySQL的部署配置
这篇文章介绍了如何使用Docker部署MySQL数据库,包括搜索和拉取MySQL镜像、创建容器并设置端口映射和目录映射、进入容器操作MySQL,以及如何使用外部机器连接容器中的MySQL。
docker应用部署---MySQL的部署配置
|
7天前
|
数据采集 中间件 关系型数据库
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
21 2
|
10天前
|
SQL 关系型数据库 MySQL
9-21|mysql语句报错
9-21|mysql语句报错
|
11天前
|
关系型数据库 MySQL 数据库
docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
42 0
|
20天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
22天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
163 11
|
2月前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
17天前
|
存储 SQL 关系型数据库
MySQL的安装&数据库的简单操作
本文介绍了数据库的基本概念及MySQL的安装配置。首先解释了数据库、数据库管理系统和SQL的概念,接着详细描述了MySQL的安装步骤及其全局配置文件my.ini的调整方法。文章还介绍了如何启动MySQL服务,包括配置环境变量和使用命令行的方法。最后,详细说明了数据库的各种操作,如创建、选择和删除数据库的SQL语句,并提供了实际操作示例。
59 13
MySQL的安装&数据库的简单操作
|
23天前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
5天前
|
关系型数据库 Unix MySQL
MySQL是一种关系型数据库管理系统
MySQL是一种关系型数据库管理系统
14 2
下一篇
无影云桌面