前情提要
最近项目需要天气数据(预报和历史数据)来作为算法程序的输入。 项目的甲方已经购买了天气数据, 依照他们的约定,天气数据的供应商会将数据以"文本" (.TXT)的方式发到FTP上面。
因此,我们需要将这些数据从FTP上面获取出来,并做好持久化工作。以备我们算法程序的使用。
持久化准备
由于项目的需要和考虑历史的一些因素,我们这边的数据库选型时MYSQL。她作为一个开源的关系型数据库,个人感觉还是非常不错滴~~
此外,利用Python和docker作为开发与部署(devops)相结合的模式,在业界也是非常流行的一种方式。
这里我们先主要介绍一下如何使用docker部署mysql环境:
1. 获取 MySQL 镜像
# docker pull mysql:8.0
2. 启动 MySQL 容器
# docker run -d -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 --name test-mysql -v /home/ct/mysql/data:/var/lib/mysql mysql:8.0
注: 我们在这里同时设置了:
1. 暴露在宿主机上的端口3306;
2. 数据挂载点 -v /home/ct/mysql/data;
3. 进入 mysql 容器,验证本地登录
# docker exec -it test-mysql /bin/bash
# mysql -u root -ppassword
4. 设置权限,允许远程root用户访问
MySQL允许远程访问 (1)改表。 # mysql -u root -p mysql> use mysql; mysql> update user set host = '%'where user= 'root'; mysql>select host, user from user; (2)赋予任何主机访问数据的权限 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //使修改生效 mysql> flush privileges; //退出MySQL服务器 mysql> EXIT
我这里用的是第二种方式,成功!!
感谢大家的收看,欢迎留言交流哦!!
预祝大家端午节假日有个好心情~~
参考资料:
https://hub.docker.com/_/mysql/
https://www.linuxidc.com/Linux/2017-03/142404.htm