docker

类型
docker
OS
学习时间
状态
进行中
参考资料
网站
封面
下载 (1).jpg

常用软件安装

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...