如何使用Docker部署mysql数据库

    一、检查系统版本[root@node ~]# cat /etc/os-release
    NAME="
    CentOS Linux"

    VERSION="
    7 (Core)"

    ID="
    centos"

    ID_LIKE="
    rhel fedora"

    VERSION_ID="
    7"

    PRETTY_NAME="
    CentOS Linux 7 (Core)"

    ANSI_COLOR="
    0;
    31"

    CPE_NAME="
    cpe:/o:centos:centos:7"

    HOME_URL="
    https://www.centos.org/"

    BUG_REPORT_URL="
    https://bugs.centos.org/"


    CENTOS_MANTISBT_PROJECT="
    CentOS-7"

    CENTOS_MANTISBT_PROJECT_VERSION="
    7"

    REDHAT_SUPPORT_PRODUCT="
    centos"

    REDHAT_SUPPORT_PRODUCT_VERSION="
    7"
    二、检查docker状态1.检查docker版本[root@node ~]#
    [root@node ~]# docker version
    Client: Docker Engine - Community
    Version: 20.10.17
    API version: 1.41
    Go version: go1.17.11
    Git commit: 100c701
    Built: Mon Jun 6 23:05:12 2022
    OS/Arch: linux/amd64
    Context: default
    Experimental: true

    Server: Docker Engine - Community
    Engine:
    Version: 20.10.17
    API version: 1.41 (minimum version 1.12)
    Go version: go1.17.11
    Git commit: a89b842
    Built: Mon Jun 6 23:03:33 2022
    OS/Arch: linux/amd64
    Experimental: false
    containerd:
    Version: 1.6.6
    GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
    runc:
    Version: 1.1.2
    GitCommit: v1.1.2-0-ga916309
    docker-init:
    Version: 0.19.0
    GitCommit: de40ad0 2.检查docker状态[root@node ~]# systemctl status docker
    ● docker.service - Docker Application Container Engine
    Loaded: loaded (/usr/lib/systemd/system/docker.service;
    enabled;
    vendor preset: disabled)
    Active: active (running) since Mon 2022-10-31 03:28:51 CST;
    3 days ago
    Docs: https://docs.docker.com
    Main PID: 11884 (dockerd)
    Tasks: 32
    Memory: 3.4G
    CGroup: /system.slice/docker.service
    ├─11884 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    ├─89868 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8100 -container-ip 172.17.0.2 -container-port 8100
    └─89875 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8100 -container-ip 172.17.0.2 -container-port 8100

    Nov 03 01:23:55 node dockerd[11884]: time="
    2022-11-03T01:23:55.090581806+08:00"
    level=info msg="
    ignoring event"
    container=d9f4cabef3539e...kDelete"

    Nov 03 01:25:19 node dockerd[11884]: time="
    2022-11-03T01:25:19.911516515+08:00"
    level=info msg="
    ignoring event"
    container=e7556e1f3cd741...kDelete"

    Nov 03 01:25:20 node dockerd[11884]: time="
    2022-11-03T01:25:20.514390808+08:00"
    level=info msg="
    ignoring event"
    container=cb68026ad986be...kDelete"

    Nov 03 01:25:20 node dockerd[11884]: time="
    2022-11-03T01:25:20.907601037+08:00"
    level=info msg="
    ignoring event"
    container=3fccd6f474f242...kDelete"

    Nov 03 01:28:08 node dockerd[11884]: time="
    2022-11-03T01:28:08.318850188+08:00"
    level=info msg="
    ignoring event"
    container=c40d1656d49185...kDelete"

    Nov 03 01:29:44 node dockerd[11884]: time="
    2022-11-03T01:29:44.687790759+08:00"
    level=info msg="
    ignoring event"
    container=aaa5856375e071...kDelete"

    Nov 03 01:29:49 node dockerd[11884]: time="
    2022-11-03T01:29:49.913701227+08:00"
    level=info msg="
    ignoring event"
    container=4df40876d4fdc5...kDelete"

    Nov 03 01:29:50 node dockerd[11884]: time="
    2022-11-03T01:29:50.273656357+08:00"
    level=info msg="
    Layer sha256:7c05c40a224c88646a3c06ee539...aned up"

    Nov 03 01:29:50 node dockerd[11884]: time="
    2022-11-03T01:29:50.341692050+08:00"
    level=info msg="
    Layer sha256:7c05c40a224c88646a3c06ee539...aned up"

    Nov 03 01:29:50 node dockerd[11884]: time="
    2022-11-03T01:29:50.411279167+08:00"
    level=info msg="
    Layer sha256:7c05c40a224c88646a3c06ee539...aned up"

    Hint: Some lines were ellipsized, use -l to show in full. 三、在docker hub搜索mysql[root@node ~]# docker search mysql
    NAME DESCRIPTION STARS OFFICIAL AUTOMATED
    mysql MySQL is a widely used, open-source relation… 13426 [OK]
    mariadb MariaDB Server is a high performing open sou… 5119 [OK]
    phpmyadmin phpMyAdmin - A web interface for MySQL and M… 674 [OK]
    percona Percona Server is a fork of the MySQL relati… 592 [OK]
    bitnami/mysql Bitnami MySQL Docker Image 78 [OK]
    databack/mysql-backup Back up mysql databases to... anywhere! 74
    linuxserver/mysql-workbench 45
    ubuntu/mysql MySQL open source fast, stable, multi-thread… 38
    linuxserver/mysql A Mysql container, brought to you by LinuxSe… 37
    circleci/mysql MySQL is a widely used, open-source relation… 28
    google/mysql MySQL server for Google Compute Engine 21 [OK]
    rapidfort/mysql RapidFort optimized, hardened image for MySQL 13
    bitnami/mysqld-exporter 4
    ibmcom/mysql-s390x Docker image for mysql-s390x 2
    newrelic/mysql-plugin New Relic Plugin for monitoring MySQL databa… 1 [OK]
    vitess/mysqlctld vitess/mysqlctld 1 [OK]
    hashicorp/mysql-portworx-demo 0
    docksal/mysql MySQL service images for Docksal - https://d… 0
    rapidfort/mysql8-ib RapidFort optimized, hardened image for MySQ… 0
    mirantis/mysql 0
    cimg/mysql 0
    drud/mysql 0
    silintl/mysql-backup-restore Simple docker image to perform mysql backups… 0 [OK]
    corpusops/mysql https://github.com/corpusops/docker-images/ 0
    drud/mysql-local-57 ddev mysql local container 0 四、下载mysql镜像[root@node ~]# docker pull mysql:5.7
    5.7: Pulling from library/mysql
    Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
    Status: Image is up to date for mysql:5.7
    docker.io/library/mysql:5.7 五、创建mysql容器1.创建数据目录[root@node ~]# mkdir -p /data/mysql
    [root@node ~]# cd /data/mysql/
    [root@node mysql]# ls 2.运行mysql容器[root@node mysql]# docker run -d --name mysql_01 --restart always -v /data/mysql/db:/var/lib/mysql -p 3541:3306 -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=data mysql:5.7
    aa36de70b1ae62ed3e123c504e6a6ad28aae1c399ca94fd5c507d3ed5c1a51f4 3.查看mysql容器状态[root@node mysql]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    aa36de70b1ae mysql:5.7 "
    docker-entrypoint.s…"
    2 seconds ago Up 2 seconds 33060/tcp, 0.0.0.0:3541->
    3306/tcp, :::3541->
    3306/tcp mysql_01 4.查看mysql容器运行日志[root@node mysql]# docker logs mysql_01
    2022-11-03 03:31:49+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started.
    2022-11-03 03:31:49+00:00 [Note] [Entrypoint]: Switching to dedicated user '
    mysql'

    2022-11-03 03:31:49+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.36-1debian10 started.
    2022-11-03 03:31:49+00:00 [Note] [Entrypoint]: Initializing database files
    2022-11-03T03:31:49.635196Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2022-11-03T03:31:49.898761Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2022-11-03T03:31:49.931888Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2022-11-03T03:31:50.006756Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0d679e67-5b28-11ed-a3e5-0242ac110003.
    2022-11-03T03:31:50.007982Z 0 [Warning] Gtid table is not ready to be used. Table '
    mysql.gtid_executed'
    cannot be opened.
    2022-11-03T03:31:50.887041Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
    2022-11-03T03:31:50.887076Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
    2022-11-03T03:31:50.887861Z 0 [Warning] CA certificate ca.pem is self signed.
    2022-11-03T03:31:51.230064Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
    2022-11-03 03:31:53+00:00 [Note] [Entrypoint]: Database files initialized
    2022-11-03 03:31:53+00:00 [Note] [Entrypoint]: Starting temporary server
    2022-11-03 03:31:53+00:00 [Note] [Entrypoint]: Waiting for server startup
    2022-11-03T03:31:54.067334Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2022-11-03T03:31:54.070294Z 0 [Note] mysqld (mysqld 5.7.36) starting as process 76 ...
    2022-11-03T03:31:54.073329Z 0 [Note] InnoDB: PUNCH HOLE support available
    2022-11-03T03:31:54.073358Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    2022-11-03T03:31:54.073361Z 0 [Note] InnoDB: Uses event mutexes
    2022-11-03T03:31:54.073363Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
    2022-11-03T03:31:54.073365Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
    2022-11-03T03:31:54.073369Z 0 [Note] InnoDB: Using Linux native AIO
    2022-11-03T03:31:54.073598Z 0 [Note] InnoDB: Number of pools: 1
    2022-11-03T03:31:54.073680Z 0 [Note] InnoDB: Using CPU crc32 instructions
    2022-11-03T03:31:54.076833Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
    2022-11-03T03:31:54.086060Z 0 [Note] InnoDB: Completed initialization of buffer pool
    2022-11-03T03:31:54.088952Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
    2022-11-03T03:31:54.101612Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
    2022-11-03T03:31:54.108731Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
    2022-11-03T03:31:54.108809Z 0 [Note] InnoDB: Setting file '
    ./ibtmp1'
    size to 12 MB. Physically writing the file full;
    Please wait ...
    2022-11-03T03:31:54.133108Z 0 [Note] InnoDB: File '
    ./ibtmp1'
    size is now 12 MB.
    2022-11-03T03:31:54.133793Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
    2022-11-03T03:31:54.133813Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
    2022-11-03T03:31:54.134160Z 0 [Note] InnoDB: Waiting for purge to start
    2022-11-03T03:31:54.184549Z 0 [Note] InnoDB: 5.7.36 started;
    log sequence number 2749723
    2022-11-03T03:31:54.184906Z 0 [Note] Plugin '
    FEDERATED'
    is disabled.
    2022-11-03T03:31:54.186366Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
    2022-11-03T03:31:54.188246Z 0 [Note] InnoDB: Buffer pool(s) load completed at 221103 3:31:54
    2022-11-03T03:31:54.191804Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
    2022-11-03T03:31:54.191834Z 0 [Note] Skipping generation of SSL certificates as certificate files are present in data directory.
    2022-11-03T03:31:54.191837Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
    2022-11-03T03:31:54.191840Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
    2022-11-03T03:31:54.192296Z 0 [Warning] CA certificate ca.pem is self signed.
    2022-11-03T03:31:54.192354Z 0 [Note] Skipping generation of RSA key pair as key files are present in data directory.
    2022-11-03T03:31:54.193128Z 0 [Warning] Insecure configuration for --pid-file: Location '
    /var/run/mysqld'
    in the path is accessible to all OS users. Consider choosing a different directory.
    2022-11-03T03:31:54.199094Z 0 [Note] Event Scheduler: Loaded 0 events
    2022-11-03T03:31:54.199272Z 0 [Note] mysqld: ready for connections.
    Version: '
    5.7.36'
    socket: '
    /var/run/mysqld/mysqld.sock'
    port: 0 MySQL Community Server (GPL)
    2022-11-03 03:31:54+00:00 [Note] [Entrypoint]: Temporary server started.
    Warning: Unable to load '
    /usr/share/zoneinfo/iso3166.tab'
    as time zone. Skipping it.
    Warning: Unable to load '
    /usr/share/zoneinfo/leap-seconds.list'
    as time zone. Skipping it.
    Warning: Unable to load '
    /usr/share/zoneinfo/zone.tab'
    as time zone. Skipping it.
    Warning: Unable to load '
    /usr/share/zoneinfo/zone1970.tab'
    as time zone. Skipping it.
    2022-11-03 03:31:56+00:00 [Note] [Entrypoint]: Creating database data

    2022-11-03 03:31:56+00:00 [Note] [Entrypoint]: Stopping temporary server
    2022-11-03T03:31:56.656015Z 0 [Note] Giving 0 client threads a chance to die gracefully
    2022-11-03T03:31:56.656041Z 0 [Note] Shutting down slave threads
    2022-11-03T03:31:56.656046Z 0 [Note] Forcefully disconnecting 0 remaining clients
    2022-11-03T03:31:56.656050Z 0 [Note] Event Scheduler: Purging the queue. 0 events
    2022-11-03T03:31:56.656102Z 0 [Note] Binlog end
    2022-11-03T03:31:56.656573Z 0 [Note] Shutting down plugin '
    ngram'

    2022-11-03T03:31:56.656591Z 0 [Note] Shutting down plugin '
    partition'

    2022-11-03T03:31:56.656593Z 0 [Note] Shutting down plugin '
    BLACKHOLE'

    2022-11-03T03:31:56.656596Z 0 [Note] Shutting down plugin '
    ARCHIVE'

    2022-11-03T03:31:56.656598Z 0 [Note] Shutting down plugin '
    PERFORMANCE_SCHEMA'

    2022-11-03T03:31:56.656627Z 0 [Note] Shutting down plugin '
    MRG_MYISAM'

    2022-11-03T03:31:56.656631Z 0 [Note] Shutting down plugin '
    MyISAM'

    2022-11-03T03:31:56.656639Z 0 [Note] Shutting down plugin '
    INNODB_SYS_VIRTUAL'

    2022-11-03T03:31:56.656654Z 0 [Note] Shutting down plugin '
    INNODB_SYS_DATAFILES'

    2022-11-03T03:31:56.656658Z 0 [Note] Shutting down plugin '
    INNODB_SYS_TABLESPACES'

    2022-11-03T03:31:56.656662Z 0 [Note] Shutting down plugin '
    INNODB_SYS_FOREIGN_COLS'

    2022-11-03T03:31:56.656665Z 0 [Note] Shutting down plugin '
    INNODB_SYS_FOREIGN'

    2022-11-03T03:31:56.656667Z 0 [Note] Shutting down plugin '
    INNODB_SYS_FIELDS'

    2022-11-03T03:31:56.656669Z 0 [Note] Shutting down plugin '
    INNODB_SYS_COLUMNS'

    2022-11-03T03:31:56.656670Z 0 [Note] Shutting down plugin '
    INNODB_SYS_INDEXES'

    2022-11-03T03:31:56.656672Z 0 [Note] Shutting down plugin '
    INNODB_SYS_TABLESTATS'

    2022-11-03T03:31:56.656674Z 0 [Note] Shutting down plugin '
    INNODB_SYS_TABLES'

    2022-11-03T03:31:56.656676Z 0 [Note] Shutting down plugin '
    INNODB_FT_INDEX_TABLE'

    2022-11-03T03:31:56.656677Z 0 [Note] Shutting down plugin '
    INNODB_FT_INDEX_CACHE'

    2022-11-03T03:31:56.656679Z 0 [Note] Shutting down plugin '
    INNODB_FT_CONFIG'

    2022-11-03T03:31:56.656680Z 0 [Note] Shutting down plugin '
    INNODB_FT_BEING_DELETED'

    2022-11-03T03:31:56.656681Z 0 [Note] Shutting down plugin '
    INNODB_FT_DELETED'

    2022-11-03T03:31:56.656682Z 0 [Note] Shutting down plugin '
    INNODB_FT_DEFAULT_STOPWORD'

    2022-11-03T03:31:56.656683Z 0 [Note] Shutting down plugin '
    INNODB_METRICS'

    2022-11-03T03:31:56.656685Z 0 [Note] Shutting down plugin '
    INNODB_TEMP_TABLE_INFO'

    2022-11-03T03:31:56.656686Z 0 [Note] Shutting down plugin '
    INNODB_BUFFER_POOL_STATS'

    2022-11-03T03:31:56.656687Z 0 [Note] Shutting down plugin '
    INNODB_BUFFER_PAGE_LRU'

    2022-11-03T03:31:56.656688Z 0 [Note] Shutting down plugin '
    INNODB_BUFFER_PAGE'

    2022-11-03T03:31:56.656690Z 0 [Note] Shutting down plugin '
    INNODB_CMP_PER_INDEX_RESET'

    2022-11-03T03:31:56.656691Z 0 [Note] Shutting down plugin '
    INNODB_CMP_PER_INDEX'

    2022-11-03T03:31:56.656692Z 0 [Note] Shutting down plugin '
    INNODB_CMPMEM_RESET'

    2022-11-03T03:31:56.656693Z 0 [Note] Shutting down plugin '
    INNODB_CMPMEM'

    2022-11-03T03:31:56.656695Z 0 [Note] Shutting down plugin '
    INNODB_CMP_RESET'

    2022-11-03T03:31:56.656696Z 0 [Note] Shutting down plugin '
    INNODB_CMP'

    2022-11-03T03:31:56.656697Z 0 [Note] Shutting down plugin '
    INNODB_LOCK_WAITS'

    2022-11-03T03:31:56.656699Z 0 [Note] Shutting down plugin '
    INNODB_LOCKS'

    2022-11-03T03:31:56.656701Z 0 [Note] Shutting down plugin '
    INNODB_TRX'

    2022-11-03T03:31:56.656702Z 0 [Note] Shutting down plugin '
    InnoDB'

    2022-11-03T03:31:56.656806Z 0 [Note] InnoDB: FTS optimize thread exiting.
    2022-11-03T03:31:56.656919Z 0 [Note] InnoDB: Starting shutdown...
    2022-11-03T03:31:56.757522Z 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
    2022-11-03T03:31:56.757787Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 221103 3:31:56
    2022-11-03T03:31:57.970526Z 0 [Note] InnoDB: Shutdown completed;
    log sequence number 12659645
    2022-11-03T03:31:57.972238Z 0 [Note] InnoDB: Removed temporary tablespace data file: "
    ibtmp1"

    2022-11-03T03:31:57.972276Z 0 [Note] Shutting down plugin '
    MEMORY'

    2022-11-03T03:31:57.972287Z 0 [Note] Shutting down plugin '
    CSV'

    2022-11-03T03:31:57.972292Z 0 [Note] Shutting down plugin '
    sha256_password'

    2022-11-03T03:31:57.972294Z 0 [Note] Shutting down plugin '
    mysql_native_password'

    2022-11-03T03:31:57.972417Z 0 [Note] Shutting down plugin '
    binlog'

    2022-11-03T03:31:57.972905Z 0 [Note] mysqld: Shutdown complete

    2022-11-03 03:31:58+00:00 [Note] [Entrypoint]: Temporary server stopped

    2022-11-03 03:31:58+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.

    2022-11-03T03:31:58.915733Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2022-11-03T03:31:58.917521Z 0 [Note] mysqld (mysqld 5.7.36) starting as process 1 ...
    2022-11-03T03:31:58.920218Z 0 [Note] InnoDB: PUNCH HOLE support available
    2022-11-03T03:31:58.920244Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    2022-11-03T03:31:58.920247Z 0 [Note] InnoDB: Uses event mutexes
    2022-11-03T03:31:58.920249Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
    2022-11-03T03:31:58.920251Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
    2022-11-03T03:31:58.920254Z 0 [Note] InnoDB: Using Linux native AIO
    2022-11-03T03:31:58.920601Z 0 [Note] InnoDB: Number of pools: 1
    2022-11-03T03:31:58.920689Z 0 [Note] InnoDB: Using CPU crc32 instructions
    2022-11-03T03:31:58.921871Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
    2022-11-03T03:31:58.927295Z 0 [Note] InnoDB: Completed initialization of buffer pool
    2022-11-03T03:31:58.928789Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
    2022-11-03T03:31:58.940579Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
    2022-11-03T03:31:58.945797Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
    2022-11-03T03:31:58.945895Z 0 [Note] InnoDB: Setting file '
    ./ibtmp1'
    size to 12 MB. Physically writing the file full;
    Please wait ...
    2022-11-03T03:31:58.963248Z 0 [Note] InnoDB: File '
    ./ibtmp1'
    size is now 12 MB.
    2022-11-03T03:31:58.963976Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
    2022-11-03T03:31:58.963996Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
    2022-11-03T03:31:58.964510Z 0 [Note] InnoDB: Waiting for purge to start
    2022-11-03T03:31:59.015352Z 0 [Note] InnoDB: 5.7.36 started;
    log sequence number 12659645
    2022-11-03T03:31:59.015611Z 0 [Note] Plugin '
    FEDERATED'
    is disabled.
    2022-11-03T03:31:59.015717Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
    2022-11-03T03:31:59.018506Z 0 [Note] InnoDB: Buffer pool(s) load completed at 221103 3:31:59
    2022-11-03T03:31:59.019449Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
    2022-11-03T03:31:59.019472Z 0 [Note] Skipping generation of SSL certificates as certificate files are present in data directory.
    2022-11-03T03:31:59.019476Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
    2022-11-03T03:31:59.019478Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
    2022-11-03T03:31:59.019855Z 0 [Warning] CA certificate ca.pem is self signed.
    2022-11-03T03:31:59.019905Z 0 [Note] Skipping generation of RSA key pair as key files are present in data directory.
    2022-11-03T03:31:59.020329Z 0 [Note] Server hostname (bind-address): '
    *'
    ;
    port: 3306
    2022-11-03T03:31:59.020457Z 0 [Note] IPv6 is available.
    2022-11-03T03:31:59.020506Z 0 [Note] - '
    ::'
    resolves to '
    ::'
    ;

    2022-11-03T03:31:59.020528Z 0 [Note] Server socket created on IP: '
    ::'
    .
    2022-11-03T03:31:59.021431Z 0 [Warning] Insecure configuration for --pid-file: Location '
    /var/run/mysqld'
    in the path is accessible to all OS users. Consider choosing a different directory.
    2022-11-03T03:31:59.027266Z 0 [Note] Event Scheduler: Loaded 0 events
    2022-11-03T03:31:59.027407Z 0 [Note] mysqld: ready for connections. 六、进入mysql容器

    1.进入mysql容器

    [root@node mysql]# docker exec -it mysql_01 /bin/bash
    root@aa36de70b1ae:/# pwd
    /

    Docker部署MySQL数据库全攻略,从入门到进阶

    2.进入mysql数据库

    root@aa36de70b1ae:/# mysql -h 127.0.0.1 -P3306 -uroot -padmin
    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 4
    Server version: 5.7.36 MySQL Community Server (GPL)

    Copyright (c) 2000, 2021, 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>
    show databases;

    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | data |
    | mysql |
    | performance_schema |
    | sys |
    +--------------------+
    5 rows in set (0.00 sec)

    mysql>
    七、远程连接mysql容器1.客户端安装mariadbyum -y install mariadb 2.启动mariadb服务[root@node mysql]# systemctl enable --now mariadb
    Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. 3.远程连接mysql容器[root@node mysql]# mysql -h 192.168.3.166 -P3541 -proot -padmin
    Welcome to the MariaDB monitor. Commands end with ;
    or \g.
    Your MySQL connection id is 5
    Server version: 5.7.36 MySQL Community Server (GPL)

    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

    Type '
    help;
    '
    or '
    \h'
    for help. Type '
    \c'
    to clear the current input statement.
    MySQL [(none)]>
    show databases;

    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | data |
    | mysql |
    | performance_schema |
    | sys |
    +--------------------+
    5 rows in set (0.00 sec)

    MySQL [(none)]>


    引言:Docker 的出现,让我们的部署工作变得更加轻松,而 MySQL 数据库是我们常用的数据库之一。那么如何使用 Docker 部署 MySQL 数据库呢?本文将为您一一解答,包括安装 Docker、拉取 MySQL 镜像、创建容器、配置 MySQL 数据库等全方位攻略。
    第一步:安装 Docker
    首先,我们需要安装 Docker。请到官网(https://www.docker.com/)下载适合您的系统版本。安装完毕后,可以在 Terminal(Windows 用户请使用 PowerShell)中使用以下命令检查 Docker 版本:
    docker version
    如果检测到版本号,则说明 Docker 安装成功。
    第二步:拉取 MySQL 镜像
    接下来,我们需要拉取 MySQL 镜像。打开 Terminal(Windows 用户请使用 PowerShell),输入以下命令:
    docker pull mysql:tag
    其中 tag 为相应的版本号,例如 5.7、8.0 等。拉取完成后,在 Terminal 中输入以下命令,查看是否拉取成功:
    docker images
    如果拉取成功,则可以看到类似于以下信息:
    REPOSITORY TAG IMAGE ID CREATED SIZE
    mysql 8.0 8e1e2467f3f1 2 weeks ago 544MB
    第三步:创建容器
    接下来,我们需要创建容器并启动 MySQL。请使用以下命令:
    docker run -p 3306:3306 --name mysql_server -e MYSQL_ROOT_PASSWORD=yourpassword -d mysql:tag
    其中:
    -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
    --name mysql_server:设置容器名称为 mysql_server。
    -e MYSQL_ROOT_PASSWORD=yourpassword:设置 MySQL 的 root 密码为 yourpassword。
    -d:后台运行容器。
    MySQL 容器将在后台运行,可以使用以下命令查看是否启动成功:
    docker ps
    如果启动成功,则可以看到类似于以下信息:
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    bc7ac57ad8cc mysql:tag \"docker-entrypoint.s…\" 4 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql_server
    第四步:配置 MySQL 数据库
    接下来,我们需要在 MySQL 中创建相应的数据库。使用以下命令打开 MySQL:
    docker exec -it mysql_server mysql -uroot -p
    其中,mysql_server 为容器名称。
    输入设置的 root 密码 yourpassword 后,即可进入 MySQL。
    在 MySQL 中,我们可以使用以下命令创建数据库:
    create database dbname;
    其中,dbname 为数据库的名称。
    除此之外,我们还需创建用户并授权:
    CREATE USER 'username' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'%';
    其中,username 为我们创建的用户名,password 为密码,dbname.* 表示我们授权该用户对 dbname 数据库下的所有表执行所有操作。
    第五步:备份和还原数据
    在使用 MySQL 进行项目开发的时候,我们需要对数据进行备份,以防止数据丢失。使用以下命令备份 MySQL 数据库:
    docker exec mysql_container_name /usr/bin/mysqldump -u root --password=root_password database_name > backup.sql
    其中,mysql_container_name 为 MySQL 容器名称,root_password 为 MySQL 的 root 密码,database_name 为要备份的数据库名称。
    使用以下命令还原 MySQL 数据库:
    docker exec -i mysql_container_name /usr/bin/mysql -u root --password=root_password database_name < backup.sql
    其中,mysql_container_name 为 MySQL 容器名称,root_password 为 MySQL 的 root 密码,database_name 为要恢复的数据库名称。
    第六步:关闭容器
    在项目部署完成后,我们需要关闭 MySQL 容器。使用以下命令:
    docker stop mysql_container_name
    其中,mysql_container_name 为 MySQL 容器名称。
    第七步:启动容器
    需要重新启动 MySQL 容器时,请使用以下命令:
    docker start mysql_container_name
    其中,mysql_container_name 为 MySQL 容器名称。
    结语:通过 Docker 部署 MySQL 数据库,可以大大简化我们的部署流程,也可以在数据备份和恢复时更加便捷。本文基于 Docker 19.03.8 和 MySQL 8.0.21 版本进行编写,部分操作可能因版本不同而有所差异,请以实际为准。