日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql error.log 权限_docker-compose 启动mysql 容器时 error.log 无权限访问怎么办?

發布時間:2025/3/21 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql error.log 权限_docker-compose 启动mysql 容器时 error.log 无权限访问怎么办? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景分析

docker-compose 運行mysql 容器的時候一直報下面的錯誤:

.../var/log/mysql/mysql-error.log' for error logging: Permission denied"

問題分析

出現這個問題,主要是容器中啟動MySQL 服務的是 mysql 用戶。而我們宿主機中是沒有mysql 這個用戶存在的,所以產生了 Permission denied 這個錯誤類型。

解決問題

直接進入到mysql 容器中,查看MySQL 用戶的相關信息

root@319ea9cea30b:/var/log# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/usr/sbin/nologin

man:x:6:12:man:/var/cache/man:/usr/sbin/nologin

lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin

proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

backup:x:34:34:backup:/var/backups:/usr/sbin/nologin

list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin

gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin

nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

_apt:x:100:65534::/nonexistent:/usr/sbin/nologin

mysql:x:999:999::/home/mysql:/bin/sh

root@319ea9cea30b:/var/log#

說明:

/etc/passwd 的文件格式:

用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell

所以,MySQL容器啟動MySQL 服務是用的mysql 用戶。因此,我們可以在啟動容器的時候,直接在容器中去運行一個創建error.log 的命令即可。

成功案例,MySQL

項目目錄結構

[root@iZwz93izbw8wks6an5uggxZ mysql]# ls -l

total 16

drwxr-xr-x 2 root root 4096 Aug 17 18:06 conf

drwxr-xr-x 2 polkitd root 4096 Aug 17 20:37 data

-rw-r--r-- 1 root root 464 Aug 17 20:31 docker-compose.yml

drwxr-xr-x 2 root root 4096 Aug 12 23:56 log

[root@iZwz93izbw8wks6an5uggxZ mysql]# tree

.

|-- conf

| `-- my.cnf

|-- data

|-- docker-compose.yml

`-- log

`-- error.log

3 directories, 3 files

[root@iZwz93izbw8wks6an5uggxZ mysql]#

其中 ,data 是一個空的目錄, log目錄 下有一個error.log 文件, conf目錄下有一個 my.cnf 文件。

my.cnf 內容

[mysql]

[mysqld]

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

datadir = /var/lib/mysql

log-error = /var/log/mysql/error.log

symbolic-links=0

skip-host-cache

skip-name-resolve

[mysqldump]

quick

quote-names

max_allowed_packet = 16M

docker-compose.yml 的內容

version: "3"

services:

mysql:

image: mysql:5.7

container_name: mysql

ports:

- 3306:3306

environment:

MYSQL_ROOT_PASSWORD: root

volumes:

- $PWD/conf:/etc/mysql

- $PWD/data:/var/lib/mysql

- $PWD/log/error.log:/var/log/mysql/error.log

command:

- "--default-authentication-plugin=mysql_native_password"

entrypoint: bash -c "chown -R mysql:mysql /var/log/mysql && exec /entrypoint.sh mysqld"

restart: always

說明:

command 用來指定mysql容器啟動后默認執行的命令 ,entrypoint 用來啟動容器后需要執行的命令

啟動容器

利用docker ps 查看正在運行的容器

[root@iZwz93izbw8wks6an5uggxZ mysql]# ls

conf data docker-compose.yml log

[root@iZwz93izbw8wks6an5uggxZ mysql]# docker-compose up -d

[root@iZwz93izbw8wks6an5uggxZ mysql]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

87ada830457e mysql:5.7 "bash -c 'chown -R m…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp mysql

[root@iZwz93izbw8wks6an5uggxZ mysql]#

總結

以上是生活随笔為你收集整理的mysql error.log 权限_docker-compose 启动mysql 容器时 error.log 无权限访问怎么办?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。