docker学习笔记(三)-MYSQL部署

88 阅读1分钟

准备

# 创建数据库日志、配置、数据等挂载文件
# 配置挂载目录
sudo mkdir ~/docker/container3/mysql/config/conf.d

# 数据挂载目录
sudo mkdir ~/docker/container3/mysql/data

# 日志挂载目录
sudo docker ~/docker/container3/mysql/logs

# 准备数据
create database school;
create table student(`id` int(11) unsigned not null primary key auto_increment, `name` varchar(20) not null default '');

insert into student(name) values ('zhangsan'), ('lisi'),('wangwu');

安装

sudo docker pull mysql:5.7.26 # 拉取镜像

sudo docker run --name mysql-5.7.26 -p 3306:3306 -d \
-e MYSQL_ROOT_PASSWORD=you_password #设置root的密码
-v ~/docker/container3/mysql/config/conf.d:/etc/mysql/conf.d \
-v ~/docker/container3/mysql/data:/var/lib/mysql \
-v ~/docker/container3/mysql/logs:/var/log/mysql \
mysql:5.7.26

安装完后使用ps查看容器是否运行成功,运行成功后使用exec进入mysql容器执行mysql语句(这步可跳过)

接入php+nginx

1、获取mysql的ip

sudo docker inspect {container_name | id} | grep "IPAddress"

2、在conf.d文件下创建.cnf配置文件

[mysqld]
server_id=1
bind_address=container_ip_address

... ... 

3、php环境安装mysql必要库, mysqli和pdo_mysql二选一, 有开启就跳过该步骤

# 使用exec进入php容器,运行php -m命令查看是否有mysqli或pdo_mysql

# 安装准备,
# apt-get update 更新apt库
# apt list --installed 查看是否有zip, unzip三个库,安装时需要用到
# apt-get install zip unzip 没有就执行这个命令

# 还是在这个容器里
docker-php-ext-install mysqli pdo_mysql #安装库

安装完后重启一下

4,php脚本连接mysql

<?php
$mysql = mysqli_connect('container_ip_address', 'mysql_username', 'mysql_pwd', 'dbname');

if (! $mysqli) {
   exit('连接mysql失败');
}

... ...