其实网上关于docker上搭建mysql的文章已经很多了,只是今晚自己搭建的时候遇到一些问题,记录一下
1.首先是pull image , docker pull mysql
2.启动服务 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ncs123456# -d mysql
可是这样确实启动起来了,但是用客服端工具连接报2058错误,
3.进入到mysql换进中 docker exec -it mysql mysql -uroot -pncs123456#
4修改密码 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
记住一定要修改密码(我的意思这里的密码必须和先前的密码要不一样), 不修改好像不行的,因为我执行过以下指令是没有解决问题
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码
FLUSH PRIVILEGES;
alter user 'root'@'localhost' identified by 'ncs123456#';
所以必须修改密码
5,一般我们都需要配置mysql的路径, 换种说法就是让mysql的配置和数据库文件保存到物理机上,需要创建映射(需要先删除先前的容器)docker run --name mysql -v D:/Docker/mysql/conf:/etc/mysql/conf.d -v d:/Docker/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
物理文件结构如下:
注意:先不要在你的配置文件D:/Docker/mysql/conf中添加任何内容,测试容器能否正常运行。如果可以,再往配置文件中添加配置,这样可以方便排除错误;因为旧版的mysql配置不一定适用于新版的mysql。下面的错误的源头就是配置文件的问题(我也一直没有想到是它的问题)
参考 https://www.jianshu.com/p/d297b0be4157
-----------------------------------------------------------------------------
mssql 很简单了:
1.拉取镜像 docker pull microsoft/mssql-server-linux
2.启动服务 docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=ncs123456#' -p 1433:1433 --name mssql -v /d/docker/mssql/data:/var/opt/mssql/data -d microsoft/mssql-server-linux
----------------------------------------------------------------------------
Redis的搭建就比较简单了,
1.拉取镜像 docker pull redis
2.准备物理文件 D:Docker edis edis.conf 然后启动redis,docker run -v /d/docker/redis/redis.conf:/usr/local/ect/redis/redis.conf --name redis -p 6379:6379 -d redis
3.进入redis cli操作练习