Linux下使用docker部署mysql(一)
1.拉取docker
docker pull mysql:5.7
2.配置挂载目录
sudo mkdir -p /docker_data/mysql/data
sudo mkdir -p /docker_data/mysql/conf
sudo mkdir -p /docker_data/mysql/conf/conf.d
sudo mkdir -p /docker_data/mysql/conf/mysql.conf.d
sudo mkdir -p /docker_data/mysql/logs
3.运行mysql容器
sudo docker run --privileged=true --restart=always --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d mysql:5.7
sudo docker run:这个命令用于在 Docker 中运行一个容器。
--privileged=true:这个选项指示 Docker 将容器运行在特权模式下,即容器内的进程将拥有主机的特权,这通常用于在容器内部运行一些需要特权的操作。
--restart=always:这个选项指示 Docker 在容器意外停止时自动重启容器。这样可以确保 MySQL 服务始终处于运行状态。
--name mysql5.7:这个选项指定容器的名称为 mysql5.7,这样你可以使用这个名称来引用这个容器。
-p 3306:3306:这个选项将主机的 3306 端口映射到容器内部的 3306 端口,这样你就可以通过主机的 3306 端口访问 MySQL 服务。
-e MYSQL_ROOT_PASSWORD=root123456:这个选项设置了 MySQL 的 root 用户的密码为 root123456。-e 用于设置环境变量。
-d:这个选项指示 Docker 在后台运行容器,即以守护进程的方式运行容器
直到这里就算是docker中的mysql算是安装好了,只是安装,还要配置mysql里的链接的用户名什么的数据库什么的,
4.进入MySQL容器及创建账号
sudo docker exec -it mysql5.7 bash
执行后,就报一直在重启,
查看下日志 docker logs
sudo docker run --privileged=true --restart=always --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d -v /docker_data/mysql/data:/var/lib/mysql -v /docker_data/mysql/conf:/etc/mysql -v /docker_data/mysql/logs:/var/log/mysql mysql:5.7
这样就好了
sudo docker exec -it mysql5.7 bash
mysql -u root -p
mysql> CREATE USER 'unified_model_root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE DATABASE `unified_model` CHARACTER SET 'utf8mb4';
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON `unified_model`.* TO 'unified_model_root'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)