人间蒸发
2019-10-12 12:48:59
docker入门——docker安装mysq5.7数据库连接不上或者数据库一些sql语句不能使用。
上一篇讲了,docker是一个怎么使用,而且筱进GG给大家也讲明了docker一些更细节的东西,已经安装等等内容。
那么在玩docker的时候不免会出现一些问题,其实也不是docker的错,而是mysql本身的问题,导致docker安装完成mysql会出现问题。
首先,docker安装mysql。
docker search mysql //查看mysql已有镜像,然后它会给大家展示一大堆,这里我就不给大家截图了
docker pull mysql:5.7 //安装mysql5.7
下载完成后,启动容器
docker run -it --rm --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7 --lower_case_table_names=1 //docker安装mysql忽略大小写
记得关闭防火墙,或者开发3306端口。
启动完成后,使用Navicat访问这个数据库,我出现了俩种不同的报错情况,
1.连接不上。
2.连接成功,出现如下报错。
Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.month_id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by //这种错误,我百度得到的解释是MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。有关5.7.5之前的行为的说明,请参见“MySQL 5.6参考手册”。)
第二种错误大部分要求你修改my.cnf配置文件,添加如下内容。
[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
我试了但是并没有生效。
经过尝试,俩种不同的报错可以一起解决。
docker ps //查看正在运行的容器
我们进入到容器中
docker exec -it 4730106799e3 bash //注意使用容器id,而不是容器名称,网上很多都是容器名称,我这里使用容器名称是不成功的。
mysql -uroot -p123456 //登录mysql
mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; Query OK, 0 rows affected (0.01 sec) mysql> mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) //运行如上内容,调整权限
mysql> quit //退出mysql
root@4730106799e3:/# exit //退出容器
docker restart 4730106799e3 //重新启动容器。
就OK了!
至此,我的出现的问题解决。
各位拜拜,有问题随时与我交流!
评论

zjl123 LV6
2020年10月19日
qlz235
2020年6月17日
暂无贡献等级
qaz7225277
2020年4月26日
暂无贡献等级
s10086
2020年4月19日
暂无贡献等级
已注销用户 LV34
2020年4月1日
DirPos LV9
2020年3月24日
wojiaoyp
2020年1月15日
暂无贡献等级
2187693636 LV12
2020年1月2日
逐梦211 LV4
2019年12月20日
uilpassword LV1
2019年11月26日