Docker mysql 和 flask容器连接 bug解决

news/2024/7/3 11:49:14

我是用的 --link=container_name:aka方法连接的两个容器,所以在使用SQLAlchemy连接mysql的时候,需要使用aka别名作为IP地址,如下所示。

<user>:<passwd>@aka:<port>/<database>

Docker 会把aka转化成mysql容器的地址,但这样只能确保连接建立成功,要真正的连接成功,需要让mysql支持(mysql默认只能本地连接)。

update user set authentication_string=password('你的新密码') where user='root'
这里是把root用户的密码改掉,至于为什么....
update user set host = ’%’ where user = ’root’ and host='localhost';
这一步时更新root的权限,我的表里有两个root用户,我把他们的host分别变成了,
%和0.0.0.0 
flush privileges;
最后在当前mysql里刷新一下权限,让配置生效,然后重启你的mysql容器
我的flask容器这样配置以后就可以正常连接mysql了。

其实除了 --link 还有一种直接创建网络的方式,让容器都运行在创建好的网络中,但在下对于docker理解不深,所以没有使用,如果按我上面配置依然不行,可以上网搜索一下创建网络让容器交互的方式。

最后说一下自己的理解,我改用docker部署以后,配置起来很不爽(是我太菜),各种ip端口映射,配置容器里的各种事项,相比普通部署来说,确实复杂,但是这样部署解耦,而且扩展性好,我觉得这两点可能docker很火的原因吧,所以选不选docker我觉得还是要看项目,千万不要为了docker而docker。


http://www.niftyadmin.cn/n/3172427.html

相关文章

MD5加密函数实现

2019独角兽企业重金招聘Python工程师标准>>> 代码如下&#xff1a; import java.security.MessageDigest; public class MD5Util {/*** * MD5加密 生成32位md5码* param 待加密字符串* return 返回32位md5码*/public static String md5Encode(String inStr) throws …

Linux内核设计与实现笔记

第3章 进程管理 进程 进程描述符及任务结构 分配进程描述符&#xff0c;通过slab分配器分配task_struct&#xff0c;达到对象复用和缓存着色的目的 task_struct thread_info 每个任务的thread_info结构在他的内核栈的尾端分配&#xff0c;结构中task域中存放的是指向该任务task…

顺序表的个人心得

为什么要有顺序表&#xff1f; 为了有序存储连续的数据。顺序表存储&#xff1a;开辟连续的内存空间&#xff0c;空间里保存真实数据的引用地址&#xff0c;因为地址固定存储四个字节&#xff0c;可以让当前数据结构产生一种规律&#xff0c;不管访问哪个元素&#xff0c;用开始…

day4-用户授权

重置数据库员密码 mysqladmin -hlocalhost -uroot -p password "" 恢复数据库管理员密码 [rootlocalhost ~]# /etc/init.d/mysqld stop [rootlocalhost ~]# /etc/init.d/mysqld start --skip-grant-table mysql>update mysql.user set passwordpassword("新密…

17.动态规划入门

一、算法介绍 1.简介 本次课我们将介绍介绍动态规划&#xff08;Dynamic Programming, DP&#xff09;及其解决的问题、根据其设计的算法及优化。 动态规划是编程解题的一种重要手段&#xff0c;它是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规…

Linux设备驱动程序学习笔记——第七章时间、延迟及延缓操作

Linux设备驱动程序学习笔记 第七章时间、延迟及延缓操作 一、度量时间差 内核通过定时器中断来跟踪时间流 时钟中断由系统定时硬件以周期性的间隔产生&#xff0c;这个间隔由内核根据HZ的值设定&#xff0c;HZ是一个与体系结构相关的常数&#xff0c;定义在<linux/param.h…

Linux设备驱动程序学习笔记——第八章分配内存

Linux设备驱动程序学习笔记 第八章分配内存 一、kmalloc函数的内幕 &#xff08;1&#xff09;flags参数 //kmalloc原型 #include<linux/slab.h> void *kmalloc(size_t size, int flags);//flags分配标志&#xff0c;最常用的是GFP_FERNEL分配标志&#xff1a; GFP_A…

Django 分组查询与ordering字段 巨坑

样例&#xff1a; class Test(Model):class Meta:db_table testordering [字段1&#xff0c; 字段2&#xff0c; 字段3]django里常见的 group by 查询写法 : Test.objects.values(查询字段).filter(过滤条件).annotate(分组字段)遇到的问题&#xff1a; 这个分组查询的巨坑…