人间蒸发
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日