准备
# 创建数据库日志、配置、数据等挂载文件
# 配置挂载目录
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失败');
}
... ...