基于Docker安装MySQL8

目录

1.拉取镜像

2.准备挂载的目录

3.运行一个简单的容器

4.创建MySQL容器

5.解决远程连接的问题

5.1 先进入docker容器

5.2 进入MySQL

5.3 给 root 用户设置远程连接权限


1.拉取镜像

代码:

docker pull mysql:8.0.32

实例:

[root@localhost howlong]# docker pull mysql:8.0.32
8.0.32: Pulling from library/mysql
328ba678bf27: Pull complete 
f3f5ff008d73: Pull complete 
dd7054d6d0c7: Pull complete 
70b5d4e8750e: Pull complete 
cdc4a7b43bdd: Pull complete 
3e9c0b61a8f3: Pull complete 
806a08b6c085: Pull complete 
021b2cebd832: Pull complete 
ad31ba45b26b: Pull complete 
0d4c2bd59d1c: Pull complete 
148dcef42e3b: Pull complete 
Digest: sha256:f496c25da703053a6e0717f1d52092205775304ea57535cc9fcaa6f35867800b
Status: Downloaded newer image for mysql:8.0.32
docker.io/library/mysql:8.0.32
[root@localhost howlong]# 


2.准备挂载的目录

代码:

mkdir -p /usr/local/mysql/{conf,data,logs}

实例:

[root@localhost howlong]# mkdir -p /usr/local/mysql/{conf,data,logs}
[root@localhost howlong]# 


3.一个简单的容

代码:

docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.32

实例:

[root@localhost howlong]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.32
446a92e50fbc226eb0d259a316d974b525af1cfe9f1a6d5e03a1f249ae396dc5
[root@localhost howlong]# 


4.创建MySQL容器

代码:

docker run \
--restart=always \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/mysql/data:/var/lib/mysql \
-d mysql:8.0.32 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci

实例:

[root@localhost howlong]# docker run \
--restart=always \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/mysql/data:/var/lib/mysql \
-d mysql:8.0.32 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
c0a26a894971a56f65bb444e5c4b2284e6a24624be2b9b04dc092243aa367a6c
[root@localhost howlong]# 


5.解决远程连接的问题

        当容器 创建并运 后,通过 SQLyon 工具进 远程连接发现 能成功。原因是没有开启 root 用户远程连接的权限

5.1 先进入docker容器

代码:
docker exec -it mysql bash

5.2 进入MySQL

代码:
mysql -uroot -p123456

实例:

[root@localhost howlong]# docker exec -it mysql01 bash
bash-4.4# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

​

5.3 给 root 用户设置远程连接权限

代码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
更新user为root,host为% 的密码为123456
 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
更新user为root,host为localhost 的密码为123456

你可能感兴趣的:(Docker,MySQL,docker,容器,运维,mysql)