Tag: mysql

使用Docker在WordPress上持续交付

过去我经常遇到这个问题:我有一个正在生产的wordpress网站。 我从本地机器手动部署网站。 所以,如果有变化,我再次从本地文件系统导出数据库和文件,并将它们导入远程生产服务器。 这很糟糕,特别是如果你的远程服务器有不同的环境(不同的操作系统,不同的PHP版本,不同的MySQL等)。 所以我决定使用Docker和Docker容器来运行我的Wordpress网站。 在我作为Java和Node.js应用程序开发人员的工作中,我开始喜欢使用Continuous Deliverypipe道来testing和部署从开发到生产环境的更改的方式。 我怎样才能build立一个WordPress的网站+运行在docker集装箱的MySQL的工作stream程? 特别是,如何将我在本地MySQL上所做的更改应用到远程MySQL数据库? 解决:我已经find了一个很好的讨论和解释如何保持数据在StackOverflow持久性: 去这里 DigitalOcean的这个教程也可以帮助你。

在symfony中更新数据库模式时发生exception

对于Symfony和Doctrine来说,我是一个新手,因此在不久的将来我将需要在商业上开展一些代码的工作。 长话短说,我现在正在修改现有实体以添加新参数。 我已经更新了ORM注释来表示这个,据我所知,如果我运行以下: php app/console doctrine:migrations:diff 这应该会自动更新数据库表以添加一个新的列来容纳我的新属性。 但是,当我运行它时,我得到以下错误: [Doctrine\DBAL\Exception\ConnectionException] An exception occured in driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known 它可能值得注意的是,当您通过浏览器中的表单与它进行交互时,项目已经成功与数据库通信,所以我很困惑为什么会出现这个错误? 我也在Docker容器上运行数据库,我认为这可能是造成这个错误的原因。 有任何想法吗?

连接到Microsoft Azure虚拟机中的Docker容器内的MySQL服务器

我在Microsoft Azure上创build了一个Ubuntu 15.10虚拟机。 在服务器上,我创build了一个运行MySQL的Docker容器(IP:172.17.0.2) CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4255233555db mysql "/entrypoint.sh mysql" 16 hours ago Up 16 hours 0.0.0.0:3306->3306/tcp compose_mysql_1 我可以通过ssh连接到VM,然后访问运行在Docker容器中的MySQL服务器。 我现在想从外部访问MySQL服务器,这样我的Microsoft Azure上的WebApp(相同的资源组)就可以连接到数据库。 我已经将VM的端口3306转发到172.17.0.2:3306。 使用本地PC上的MySQL-Workbench,我无法连接到MySQL服务器。 事实上,我不确定我需要提供什么凭据来连接。 我试着用虚拟机的公共IP和MySQL服务器的根密码。 但是我不应该在某个地方为虚拟机本身提供密码和用户吗?

如何使用填充数据库进行自动化testing的docker图像?

我想创build容器与MySQL数据库和转储加载集成testing。 每个testing应该连接到一个新的容器,数据库处于相同的状态。 它应该能够读写,但是当testing结束并且容器被销毁时,所有的改变都应该丢失。 我正在使用官方docker回购的“ mysql ”镜像。 1)该图像的文档build议利用“入口点”脚本来导入您在特定文件夹上提供的任何.sql文件。 据我所知,这将每次创build一个新的容器时再次导入转储,所以不是一个好的select。 那是对的吗? 2)这个答案build议使用RUN语句扩展该映像来启动mysql服务并导入所有转储。 这似乎是要走的路,但我不断收到 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 其次是 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 当我运行生成,即使我可以连接到原始图像的容器的MySQL罚款。 我尝试了sleep 5来等待mysqld服务启动,然后用'localhost'或docker-machine ip添加-h。 我怎样才能解决“2)”? 或者,有没有更好的方法?

无法远程连接到dockerized mysql数据库

在我的AWS ec2服务器上,我安装了docker 1.9.1 。 在一个基于ubuntu:trusty官方docker镜像的图片test_image ,我试图设置LEMP(Linux,Nginx,MySQL,PHP)架构。 以下是我用来启动我的容器的docker命令: docker run –name test_1 -d -p 80:80 -p 3306:3306 test_image /bin/sh -c "while true; do echo daemonized docker container; sleep 5000; done" 我将端口80和3306暴露给主机的networking接口,并且还允许AWS的安全组允许到这些端口的入站连接。 安全组中的连接types是: MYSQL/Aurora ,协议是: TCP (我知道它不是很安全,它只能用于初始实现,生产设置不同) 我遵循这个DigitalOcean教程: https ://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04 安装Nginx并启动后,我可以在浏览器中通过ec2的pubic ip进行testing,例如http://xxx.xxx.xxx.xxx显示默认的nginx欢迎页面。 在安装MySQL时,我在docker容器中遵循以下命令: apt-get install mysql-server mysql_install_db /etc/init.d/mysql start mysql_secure_installation 我已经给我的root用户提供了一个密码,在mysql_secure_installation期间,我已经允许远程访问root用户。 从容器内的mysql -u root -p命令将我连接到mysql数据库,但不是从容器外部。 另外从我的本地机器:我试着用mysql-client: mysql […]

docker cp的权限是错误的,当你将目录回到容器

我试图从运行的mysql容器中获取/var/lib/mysql目录,以保持持久性。 然后,当我然后挂载目录作为卷mysql抱怨说,它没有权限: mysqld: Table 'mysql.plugin' doesn't exist 2016-02-29 13:34:19 1 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 和 2016-02-29 13:34:20 1 [Note] Server socket created on IP: '::'. 2016-02-29 13:34:20 1 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist docker cp `cat mysqlinitCID`:/var/lib/mysql datadir/ 在这一点上,我甚至使用docker […]

Docker:授予访问链接的MySQL容器

所以我有一个mysql客户端容器和一个mysql数据库容器,仅用于testing目的。 我已经使用docker运行链接2个容器 – 链接。 现在我想在数据库中创build一个用户并授予它select,创build,更新等权限,以便它可以连接到数据库并执行查询等。 所以,客户端容器上的/ etc / hosts文件现在有一个服务器的入口,这很好,但现在我的问题是: 由于当我重新运行容器时,容器的IP地址可能会发生变化,我如何授予用户从客户端访问服务器的权限,因为客户端将被视为远程? mysql客户端的例子: mysql> grant select, update on db.* to 'test'@'???????' identified by 'testpw' 当然,我不能使用'localhost'而不是'???????' 上面,但我也不能硬编码的客户端容器的IP地址,因为这可以改变我下次运行它? 我想我很想理解链接docker工作在这种情况下如何工作:)

redirectdocker-exec的输出

docker exec不为我工作。 如果我使用docker exec -it mymachine bash连接到正在运行的容器并运行sh -c 'mysql -u root < /tmp/schema.sql' ,它就可以工作。 如果我只运行docker exec mymachine sh -c 'mysql -u root < /tmp/schema.sql' ,它不会给出任何错误,但是它什么也不做。 如果我运行docker exec mymachine sh -c 'mysql -u root < /tmp/i_dont_exist.sql' ,它也不会给我任何错误。 我该如何解决?

Docker:nginx + mariadb + php + redis的docker-compose.yml文件

我想写一个docker-compose.yml的nginx + mariadb + php + redis, 我阅读有关撰写文件,url的文档: https : //docs.docker.com/compose/compose-file/#versioning 格式是这样的: version: '2' services: web: build: . ports: – "5000:5000" volumes: – .:/code networks: – front-tier – back-tier redis: image: redis volumes: – redis-data:/var/lib/redis networks: – back-tier volumes: redis-data: driver: local networks: front-tier: driver: bridge back-tier: driver: bridge 但是我不知道如何编写nginx + mariadb + php + […]

在Docker中引导Percona Xtradb集群出现错误:无法打开和locking特权表:表'mysql.user'不存在

我的目标是获得在Docker容器中运行的Percona XtraDB安装。 为此我写了以下configuration。 Dockerfile: FROM ubuntu:wily ENV DEBIAN_FRONTEND noninteractive # # ENVIRONMENT INSTALL # RUN apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y && apt-get install -y wget curl netcat python-dev python-setuptools python-software-properties vim RUN easy_install j2cli COPY my.cnf.j2 /templates/ COPY docker-entrypoint.sh / RUN chmod +x docker-entrypoint.sh / # # PERCONA XTRADB CLUSTER […]