docker安装mysql8.0

一些命令

# 拉取MySQL 8.0镜像
docker pull mysql:8.0

# 查看镜像是否下载成功
docker images | grep mysql

# 先在宿主机创建数据目录
mkdir -p /data/mysql/data
mkdir -p /data/mysql/conf
mkdir -p /data/mysql/logs

# 创建自定义配置文件
cat > /data/mysql/conf/my.cnf << 'EOF'
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-time-zone=+08:00
max_connections=1000
innodb_buffer_pool_size=1G
innodb_log_file_size=256M

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4
EOF

# 运行容器
docker run -d \
  --name mysql8 \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=testdb \
  -e MYSQL_USER=admin \
  -e MYSQL_PASSWORD=123456 \
  -v /data/mysql/data:/var/lib/mysql \
  -v /data/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
  -v /data/mysql/logs:/var/log/mysql \
  --restart=unless-stopped \
  mysql:8.0

验证安装

# 1. 查看容器状态
docker ps | grep mysql8

# 2. 查看启动日志
docker logs mysql8

# 3. 进入容器
docker exec -it mysql8 bash

# 4. 在容器内连接MySQL
mysql -uroot -p123456

# 5. 执行简单查询
mysql> SHOW DATABASES;
mysql> SELECT VERSION();
mysql> SHOW VARIABLES LIKE 'character%';
mysql> EXIT;

# 6. 退出容器
exit

常用命令

# 重启MySQL
docker restart mysql8

# 停止MySQL
docker stop mysql8

# 启动MySQL
docker start mysql8

# 查看实时日志
docker logs -f mysql8

# 备份数据库
docker exec mysql8 mysqldump -uroot -p123456 --all-databases > backup.sql

# 恢复数据库
cat backup.sql | docker exec -i mysql8 mysql -uroot -p123456

远程访问配置

# 进入容器
docker exec -it mysql8 bash

# 连接MySQL
mysql -uroot -p123456

# 执行SQL授权远程访问
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

# 退出容器
exit

创建用户并授权

-- 1. 创建新用户(允许从任何主机连接)
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword123';

-- 2. 授予所有权限(根据需要调整)
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;

-- 3. 或者只给SELECT, INSERT, UPDATE权限
GRANT SELECT, INSERT, UPDATE ON testdb.* TO 'myuser'@'%';

-- 4. 刷新权限
FLUSH PRIVILEGES;

-- 4. 查看创建的用户
SELECT user, host FROM mysql.user;
posted @ 2026-03-01 13:38  是17阿哥呀  阅读(2)  评论(0)    收藏  举报