常用软件安装
MySQL
docker pull mysql:5.7.27
--- ~/mysql/
---data
---conf
--mysql.cnf (配置文件放在这)
---mylog
my.cnf
配置文件[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
datadir=/data
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB
log-error=/mylog/error.log
#开启慢查询
slow_query_log = on
#定义1秒以上为慢查询
long_query_time=1
#慢查询日志路径
slow-query-log-file =/mylog/slow.log
实例化docker容器
docker run --name mysql5.7.27 -d -p 3306:3306 -v ~/mysql/data:/data -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/mylog:/mylog -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.27
报错
2021-07-22T07:06:15.339552Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-07-22T07:06:15.341509Z 0 [ERROR] Could not open file '/mylog/error.log' for error logging: Permission denied
2021-07-22T07:06:15.341628Z 0 [ERROR] Aborting
因为容器默认使用的是mysql用户。 因此我们需要把映射的文件夹修改owner:
//1. 首先进入容器
docker exec -it <容器ID> /bin/bas
//2. 查看mysql用户权限
cat /etc/passwd | grep mysql
//结果,mysql权限是999
mysql:x:999:999::/home/mysql:/bin/sh
//3. 快捷键退出(Ctrl+P+Q)
//4. 修改文件权限
chown -R 999 mylog
//5. 重启docker容器
docker restart <容器ID>
Loading Comments...