【问题标题】:mysqld: Can't read dir of '/etc/mysql/conf.d/' (OS errno 13 - Permission denied)mysqld:无法读取 '/etc/mysql/conf.d/' 的目录(操作系统 errno 13 - 权限被拒绝)
【发布时间】:2020-12-24 20:03:09
【问题描述】:

docker-mysql-configmap.yml

apiVersion: v1
kind: ConfigMap
metadata:
    name: mysql-initdb-config 
data: 
    initdb.sql:
        use mydb;
        create table product(
        id int AUTO_INCREMENT PRIMARY KEY,
        name varchar(20),
        description varchar(100),
        price decimal(8,3) 
        );
            
        create table coupon(
        id int AUTO_INCREMENT PRIMARY KEY,
        code varchar(20) UNIQUE,
        discount decimal(8,3),
        exp_date varchar(100) 
        ); ```

db-mysql-service.yml

```apiVersion: v1
kind: Service
metadata:
    name: docker-mysql
    labels:
        app: docker-mysql
spec:
    selector:
        app: docker-mysql
    
    ports:
        - port: 3306
          targetPort: 3306     
          nodePort: 30287  
    type: NodePort 

        
   ``` >


db-sql-deplymonent.yml

```apiVersion: apps/v1
kind: Deployment
metadata: 
    name: docker-mysql
    labels:
        app: docker-mysql
spec:
    replicas: 1  
    selector:
        matchLabels:
            app: docker-mysql      
    template:
        metadata:
            labels: 
                app: docker-mysql
        spec:
          volumes: 
            - name: mysql-initdb-vol
              configMap:
                name: mysql-initdb-config 
          containers: 
                 - name: docker-mysql
                   image: mysql
                   volumeMounts:
                    - name:  mysql-initdb-vol
                      mountPath: /docker-entrypont-initdb.d
                   
                   
                   env:
                     - name: MYSQL_DATABASE 
                       value: mydb 
                     
                        
                     - name: MYSQL_ROOT_PASSWORD
                       value: norton09   
                     - name: MYSQL_ROOT_HOST
                       value: '%'   
                   



当我检查 pod 的日志时,我遇到了错误。

2020-09-06 01:10:15+00:00 [Note] [Entrypoint]:MySQL Server 8.0.21-1debian10 的入口点脚本已启动。 2020-09-06 01:10:15+00:00 [错误] [入口点]:mysqld 在尝试检查配置时失败 命令是:mysqld --verbose --help mysqld:无法读取 '/etc/mysql/conf.d/' 的目录(操作系统 errno 13 - 权限被拒绝) mysqld:[错误]默认处理中的致命错误。程序中止!

【问题讨论】:

    标签: java mysql docker kubernetes


    【解决方案1】:

    您没有提及您使用的是什么环境、kubernetes 或 mysql 版本,但有一些东西可能有助于解决这个问题。

    1. 更改对此文件/目录的访问权限 您也没有提到是否要检查它是如何工作的,或者它将在生产中使用。如果此解决方案符合您的需求,您可以使用 chown 命令更改文件的权限。

    可以在this threadthis 中找到更多信息。

    1. 禁用 Apparmor

    this Github thread 中所述,您可以禁用mysql 的apparmor 或使用命令形式this comment。您也可以查看this thread了解更多信息。

    1. 使用privilaged 选项

    this SO question覆盖

    如果您使用的是docker-compose,也可以查看this similar thread

    如果这些选项中的任何一个对您有用或者您仍然有问题,请告诉我。

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      • 2017-04-20
      • 2011-06-11
      • 2014-07-15
      相关资源
      最近更新 更多