Docker安装MySql
目前都是root用户创建,然后一般企业也是喜欢用docker-compose创建,不是直接命令行,不好记录
创建挂载目录,为下面的配置做铺垫
mkdir -p /home/docker_con_data/mysql_data
cd /home/docker_con_data/mysql_data
# mkdir -p /home/docker_con_data/mysql_data && cd "$_" #上面两步可简写,然后目录可改成自己的
mkdir conf data logs #创建三个目录
(可选一) 通过docker-compose 安装
cd /home/docker_con_data/mysql_data/conf && vim my.cnf
创建my.cnf 配置文件
[mysqld]
# 启用二进制日志功能
log-bin=mysql-bin
binlog_format=ROW
server-id=1
# 设置表名不区分大小写
lower_case_table_names=1
:wq
创建docker-compose.yml
cd /home/docker_con_data/mysql_data && vim docker-compose.yml
version: '3.0'
services:
mysql:
image: container-registry.oracle.com/mysql/community-server:9.0
container_name: mysql
ports:
- "3306:3306"
volumes:
- /home/docker_con_data/mysql_data/conf/my.cnf:/etc/my.cnf
- /home/docker_con_data/mysql_data/logs:/var/log/mysql
- /home/docker_con_data/mysql_data/data:/var/lib/mysql
restart: unless-stopped
privileged: true
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: mydatabase2024
MYSQL_USER: user
MYSQL_PASSWORD: 123456
:wq sudo docker-compose -f /home/docker_con_data/mysql_data/docker-compose.yml down #停止并删除现有容器 sudo docker-compose -f /home/docker_con_data/mysql_data/docker-compose.yml up -d
(可选二) 快速安装(不推荐,没有挂载,删除容器数据丢失)
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d container-registry.oracle.com/mysql/community-server:9.0
其他命令参考
停止容器:sudo docker stop mysql
删除容器:sudo docker rm mysql
查看日志:sudo docker logs mysql
查看挂载:sudo docker inspect mysql
查看密码:sudo docker logs mysql 2>&1 | grep GENERATED
登录数据库:sudo docker exec -it mysql mysql -uroot -p,输入刚才查看的密码
修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
获取容器Shell:sudo docker exec -it mysql bash
远程连接
登录数据库:sudo docker exec -it mysql mysql -u root -p
切换数据库:use mysql
查看用户:select host,user from user;
允许远程:update user set host = '%' where user = 'root';
刷新权限:flush privileges;