docker安装mysql笔记
首先 查找镜像
docker search mysql
拉取镜像 :
docker pull mysql
拉取成功后,查看本地镜像:
docker images
可以看到本地有两个镜像(redis是我之前拉取的镜像,可以忽略。),有了镜像之后,我们就可以创建容器了。
docker run -d -p 3306:3306 --name mysql1 mysql
-d : 后台运行容器;
-p :将容器中端口映射到本地;
--name :容器命名;
启动容器后 ,连接数据库失败,查看运行中的容器:
docker ps
发现mysql容器未在运行中,查看容器日志:
docker logs 6e
6e:mysql容器的容器Id
日志报错提示需要输入密码,删除刚才创建的容器:
docker rm 6e
重新创建容器:
docker run -d -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 mysql
这次查看运行中的容器,确定容器没有退出。
进入容器:
docker exec -it 6e(containerId) bash
登录mysql :
mysql -uroot -p 密码 :123456
创建用户:
create user '用户名'@'%' identified by '密码';
设置权限:
grant select,delete,update,insert,create,drop on *.* to '用户名'@'%' ;
用navicat 连接数据库 还是报错 :Authentication plugin 'caching_sha2_password' 在mysql中执行下面的语句
ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword';
再用navicat连接数据库 ,OK。
在navicat中 执行sql 提示 1055-mysql Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nona
是 sql _mode中only _full _group _by不兼容的问题。
show variables like "sql_mode"; set sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
一切OK;