Docker:Docker 安装 mysql

Docker:Docker 安装 mysql

标签(空格分隔): docker mysql 安装


最近要搞一套后台的框架,可能要跟上时代,用Docker了,这里讲讲docker中安装mysql,算是小结,免得以后忘了。

主要参考了 MySQL Docker Containers: Understanding the basics,有些地方还参考了Docker docs.

我发现网上的关于docker的教程都挺坑的,包括英文的教程,没有说按照教程就顺利完成操作的,这次也不例外,按照 MySQL Docker Containers: Understanding the basics基本是可以的了,但是其实也有不少坑:


 1. 文章中没有注明mysql的版本号,所以自己使用docker run命令的时候pull下来的版本和文章中是不一致的;
 
 
 2. 要在doker run命令的最后加上"--default-authentication-plugin=mysql_native_password" ,否则会报"Authentication plugin 'caching_sha2_password' cannot be loaded"的错误;
 
 
 3. 如果系统中 selinux 是 enable的(用命令 sestatus  就能看到是不是enable),要么disable掉selinux,要么docker run命令中加上"--privileged=true"
 
 4. 对于文章中提到的"--volume=/root/container/test-mysql/conf.d/my-custom.cnf:/etc/my.cnf"选项的使用,反正我是死活不成功的。原因实在是查不出来,但是知道在volume是干什么用的之后,确定了这个用法是没问题的,所以尝试换了个挂载的文件,真的就好了。我把这个选项改成"--volume=/root/container/test-mysql/conf.d/my-custom.cnf:/etc/mysql/conf.d/my.cnf",运行就正常了。
 
 
 5. 用"docker inspect test-mysql"查看"Volumes"并不会有文章中提到的结果,这个是没关系的,因为只要"Mounts"中列出了成功(用volume)挂上的文件或者文件夹就可以了。

最后附上我的命令:

docker run \
--name=test-mysql \
--env="MYSQL_ROOT_PASSWORD=mypassword" \
--publish 6603:3306 \
--volume=/storage/docker/mysql-datadir:/var/lib/mysql \
--volume=/root/container/test-mysql/conf.d/my-custom.cnf:/etc/mysql/conf.d/my.cnf \
--privileged=true \
--detach \
mysql \
--default-authentication-plugin=mysql_native_password 

你可能感兴趣的:(Docker:Docker 安装 mysql)