<i id='WJFNR'><tr id='WJFNR'><dt id='WJFNR'><q id='WJFNR'><span id='WJFNR'><b id='WJFNR'><form id='WJFNR'><ins id='WJFNR'></ins><ul id='WJFNR'></ul><sub id='WJFNR'></sub></form><legend id='WJFNR'></legend><bdo id='WJFNR'><pre id='WJFNR'><center id='WJFNR'></center></pre></bdo></b><th id='WJFNR'></th></span></q></dt></tr></i><div id='WJFNR'><tfoot id='WJFNR'></tfoot><dl id='WJFNR'><fieldset id='WJFNR'></fieldset></dl></div>
<legend id='WJFNR'><style id='WJFNR'><dir id='WJFNR'><q id='WJFNR'></q></dir></style></legend>
  • <tfoot id='WJFNR'></tfoot>
    • <bdo id='WJFNR'></bdo><ul id='WJFNR'></ul>

  • <small id='WJFNR'></small><noframes id='WJFNR'>

        MYSQL_ROOT_PASSWORD 已设置,但“访问被拒绝用户 'root'@'localh

        MYSQL_ROOT_PASSWORD is set but getting quot;Access denied for user #39;root#39;@#39;localhost#39; (using password: YES)quot; in docker container(MYSQL_ROOT_PASSWORD 已设置,但“访问被拒绝用户 root@localhost(使用密码:YES);在码头集装箱) - IT
        1. <legend id='QOEbU'><style id='QOEbU'><dir id='QOEbU'><q id='QOEbU'></q></dir></style></legend>
            • <bdo id='QOEbU'></bdo><ul id='QOEbU'></ul>
            • <tfoot id='QOEbU'></tfoot>

              <small id='QOEbU'></small><noframes id='QOEbU'>

                <tbody id='QOEbU'></tbody>
              <i id='QOEbU'><tr id='QOEbU'><dt id='QOEbU'><q id='QOEbU'><span id='QOEbU'><b id='QOEbU'><form id='QOEbU'><ins id='QOEbU'></ins><ul id='QOEbU'></ul><sub id='QOEbU'></sub></form><legend id='QOEbU'></legend><bdo id='QOEbU'><pre id='QOEbU'><center id='QOEbU'></center></pre></bdo></b><th id='QOEbU'></th></span></q></dt></tr></i><div id='QOEbU'><tfoot id='QOEbU'></tfoot><dl id='QOEbU'><fieldset id='QOEbU'></fieldset></dl></div>

                  本文介绍了MYSQL_ROOT_PASSWORD 已设置,但“访问被拒绝用户 'root'@'localhost'(使用密码:YES)";在码头集装箱的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一个 docker-compose 文件和一个 Dockerfile.MySQL 已正确安装.我已经设置了MYSQL_ROOT_PASSWORD.但是当尝试访问 mysql db 时,出现错误 - 访问被拒绝.我已经阅读了本网站的其他主题,但没有得到太多帮助.:(

                  I have a docker-compose file and a Dockerfile. MySQL is installed properly. I have set MYSQL_ROOT_PASSWORD. But when trying to access mysql db, getting the error - Access denied. I have read the other threads of this site, but couldn't get that much help. :(

                  这是我的 docker-compose 文件:

                  Here is my docker-compose file:

                  version: '3'
                  
                  volumes:
                          db_data: {}
                  
                  services:
                      db:
                          build:
                              context: .
                              dockerfile: ./db/Dockerfile
                              args:
                                  - database=iTel
                                  - password=123
                          image: db_image
                          volumes:
                              - db_data:/var/lib/mysql
                          ports:
                              - "3306:3306"
                  

                  和 Dockerfile:

                  and Dockerfile:

                  FROM mysql:5.7.15
                  
                  ARG database
                  ARG password
                  
                  RUN echo ${database}
                  RUN echo ${password}
                  
                  MAINTAINER me
                  ENV MYSQL_DATABASE=${database} 
                      MYSQL_ROOT_PASSWORD=${password}
                  ADD ./db/database100.sql /docker-entrypoint-initdb.d
                  EXPOSE 3306
                  

                  这里是构建日志:

                  docker-compose up -d
                  
                  Building db
                  Step 1/9 : FROM mysql:5.7.15
                  5.7.15: Pulling from library/mysql
                  6a5a5368e0c2: Pull complete
                  0689904e86f0: Pull complete
                  486087a8071d: Pull complete
                  3eff318f6785: Pull complete
                  3df41d8a4cfb: Pull complete
                  1b4a00485931: Pull complete
                  0bab0b2c2630: Pull complete
                  264fc9ce512d: Pull complete
                  e0181dcdbbe8: Pull complete
                  53b082fa47c7: Pull complete
                  e5cf4fe00c4c: Pull complete
                  Digest: sha256:966490bda4576655dc940923c4883db68cca0b3607920be5efff7514e0379aa7
                  Status: Downloaded newer image for mysql:5.7.15
                   ---> 18f13d72f7f0
                  Step 2/9 : ARG database
                   ---> Running in 62819f9fc38b
                  Removing intermediate container 62819f9fc38b
                   ---> 863fd3212046
                  Step 3/9 : ARG password
                   ---> Running in ea9d36c1a954
                  Removing intermediate container ea9d36c1a954
                   ---> 056100b1d5eb
                  Step 4/9 : RUN echo ${database}
                   ---> Running in 941bd2f4fc58
                  iTel
                  Removing intermediate container 941bd2f4fc58
                   ---> 7b2b48e7bd8c
                  Step 5/9 : RUN echo ${password}
                   ---> Running in 9cb80396bb62
                  123
                  Removing intermediate container 9cb80396bb62
                   ---> 155d184c78ba
                  Step 6/9 : MAINTAINER me
                   ---> Running in 8e3b3b53ce7b
                  Removing intermediate container 8e3b3b53ce7b
                   ---> 9a7617a24800
                  Step 7/9 : ENV MYSQL_DATABASE=${database}     MYSQL_ROOT_PASSWORD=${password}
                   ---> Running in e483e65caf55
                  Removing intermediate container e483e65caf55
                   ---> acf8ac829607
                  Step 8/9 : ADD ./db/database100.sql /docker-entrypoint-initdb.d
                   ---> 42d992439f98
                  Step 9/9 : EXPOSE 3306
                   ---> Running in 4e138502c6f9
                  Removing intermediate container 4e138502c6f9
                   ---> a0818deda593
                  Successfully built a0818deda593
                  Successfully tagged db_image:latest
                  WARNING: Image for service db was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
                  Creating reve_db_1 ... done
                  

                  查看容器:

                  docker ps -a
                  
                  CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
                  49419cb9980a        db_image            "docker-entrypoint.s…"   10 seconds ago      Up 8 seconds        0.0.0.0:3306->3306/tcp   reve_db_1
                  

                  这是这个容器的日志:

                  docker logs 49419cb9980a
                  
                  2020-01-21T07:53:13.050129Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
                  2020-01-21T07:53:13.051767Z 0 [Note] mysqld (mysqld 5.7.15) starting as process 1 ...
                  2020-01-21T07:53:13.054945Z 0 [Note] InnoDB: PUNCH HOLE support available
                  2020-01-21T07:53:13.055053Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
                  2020-01-21T07:53:13.055103Z 0 [Note] InnoDB: Uses event mutexes
                  2020-01-21T07:53:13.055179Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
                  2020-01-21T07:53:13.055226Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
                  2020-01-21T07:53:13.055268Z 0 [Note] InnoDB: Using Linux native AIO
                  2020-01-21T07:53:13.055608Z 0 [Note] InnoDB: Number of pools: 1
                  2020-01-21T07:53:13.055791Z 0 [Note] InnoDB: Using CPU crc32 instructions
                  2020-01-21T07:53:13.061164Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
                  2020-01-21T07:53:13.072998Z 0 [Note] InnoDB: Completed initialization of buffer pool
                  2020-01-21T07:53:13.075325Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
                  2020-01-21T07:53:13.101337Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
                  2020-01-21T07:53:13.142134Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
                  2020-01-21T07:53:13.142356Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
                  2020-01-21T07:53:13.184613Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
                  2020-01-21T07:53:13.185628Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
                  2020-01-21T07:53:13.185733Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
                  2020-01-21T07:53:13.186108Z 0 [Note] InnoDB: Waiting for purge to start
                  2020-01-21T07:53:13.236391Z 0 [Note] InnoDB: 5.7.15 started; log sequence number 12146163
                  2020-01-21T07:53:13.236828Z 0 [Note] Plugin 'FEDERATED' is disabled.
                  2020-01-21T07:53:13.237186Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
                  2020-01-21T07:53:13.252074Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
                  2020-01-21T07:53:13.252900Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
                  2020-01-21T07:53:13.253023Z 0 [Note] IPv6 is available.
                  2020-01-21T07:53:13.253076Z 0 [Note]   - '::' resolves to '::';
                  2020-01-21T07:53:13.253184Z 0 [Note] Server socket created on IP: '::'.
                  2020-01-21T07:53:13.269950Z 0 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
                  2020-01-21T07:53:13.270581Z 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
                  2020-01-21T07:53:13.277379Z 0 [Note] InnoDB: Buffer pool(s) load completed at 200121  7:53:13
                  2020-01-21T07:53:13.295467Z 0 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
                  2020-01-21T07:53:13.367019Z 0 [Note] Event Scheduler: Loaded 0 events
                  2020-01-21T07:53:13.368851Z 0 [Note] mysqld: ready for connections.
                  Version: '5.7.15'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
                  

                  现在进入容器:

                  docker exec -it 49419cb9980a bash
                  
                  root@49419cb9980a:/#
                  

                  我已经检查过 MYSQL_ROOT_PASSWORD 是否设置正确(在容器中):

                  I have checked if MYSQL_ROOT_PASSWORD is set correctly(in the container):

                  root@49419cb9980a:/# echo $MYSQL_ROOT_PASSWORD
                  123
                  

                  然后尝试登录mysql:

                  Then tried to log into mysql:

                  root@49419cb9980a:/# mysql -u root -p
                  Enter password:
                  ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
                  

                  我的问题是,如何解决这个问题?为什么我不能访问mysql?我也试过没有密码选项.这给了我这个错误:

                  My question is, how to solve this problem? Why can't I access mysql? I tried with no password option too. That gave me this error:

                  mysql -u root
                  ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
                  

                  这是我的项目结构:

                  tree
                  .
                  ├── db
                  │ ├── Dockerfile
                  │ └── database100.sql
                  └── docker-compose.yml
                  
                  1 directory, 3 files
                  

                  推荐答案

                  假设您已经显示了整个启动日志,看来您已经针对预先存在的 db_data 卷启动了 mysql 容器包含一个 mysql 数据库文件系统.

                  Taking for granted you have shown your entire start log, it appears you started your mysql container against a pre-existing db_data volume already containing a mysql database filesystem.

                  在这种情况下,容器启动时绝对不会初始化任何内容,环境变量也无用.引用环境变量"中的官方图片文档部分:

                  In this case, absolutely nothing will be initialized on container start and environment variables are useless. Quoting the official image documentation in the "Environment Variables" section:

                  请注意,如果您使用已包含数据库的数据目录启动容器,则以下任何变量都不会产生任何影响:在容器启动时,任何预先存在的数据库将始终保持不变.

                  Do note that none of the variables below will have any effect if you start the container with a data directory that already contains a database: any pre-existing database will always be left untouched on container startup.

                  如果你想初始化你的实例,你必须从头开始.在使用像您这样的命名卷时,使用 docker compose 很容易.警告:这将永久删除您的 db_data 卷中的内容,清除您在那里拥有的任何先前数据库.如果您需要保留内容,请先创建一个备份.

                  If you want your instance to be initialized, you have to start from scratch. It is quite easy to do with docker compose when using a named volume like in your case. Warning: this will permanently delete the contents in your db_data volume, wiping out any previous database you had there. Create a backup first if you need to keep the contents.

                  docker-compose down -v
                  docker-compose up -d
                  

                  如果您转换为绑定挂载,则必须自己删除所有内容(即 rm -rf/path/to/bind/mount/*)

                  If you ever convert to a bind mount, you will have to delete all it's content yourself (i.e. rm -rf /path/to/bind/mount/*)

                  注意:许多其他官方 db docker 镜像(postgres、mongo ....)的工作方式类似.

                  Note: many other official db docker images (postgres, mongo....) work a similar way.

                  这篇关于MYSQL_ROOT_PASSWORD 已设置,但“访问被拒绝用户 'root'@'localhost'(使用密码:YES)";在码头集装箱的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Oracle Equivalent to MySQL INSERT IGNORE?(Oracle 相当于 MySQL INSERT IGNORE?)
                  How to initialize mysql container when created on Kubernetes?(在 Kubernetes 上创建时如何初始化 mysql 容器?)
                  connecting to a docker-compose mysql container denies access but docker running same image does not(连接到 docker-compose mysql 容器拒绝访问,但运行相同图像的 docker 不会)
                  not able to connect to mysql docker from local(无法从本地连接到 mysql docker)
                  How to connect locally hosted MySQL database with the docker container(如何将本地托管的 MySQL 数据库与 docker 容器连接)
                  Docker (Apple Silicon/M1 Preview) MySQL quot;no matching manifest for linux/arm64/v8 in the manifest list entriesquot;(Docker (Apple Silicon/M1 Preview) MySQL“在清单列表条目中没有与 linux/arm64/v8 匹配的清单) - IT屋-程序员软件开发技术分享

                  <tfoot id='86uxd'></tfoot>

                  <small id='86uxd'></small><noframes id='86uxd'>

                    <tbody id='86uxd'></tbody>

                        <bdo id='86uxd'></bdo><ul id='86uxd'></ul>
                          <i id='86uxd'><tr id='86uxd'><dt id='86uxd'><q id='86uxd'><span id='86uxd'><b id='86uxd'><form id='86uxd'><ins id='86uxd'></ins><ul id='86uxd'></ul><sub id='86uxd'></sub></form><legend id='86uxd'></legend><bdo id='86uxd'><pre id='86uxd'><center id='86uxd'></center></pre></bdo></b><th id='86uxd'></th></span></q></dt></tr></i><div id='86uxd'><tfoot id='86uxd'></tfoot><dl id='86uxd'><fieldset id='86uxd'></fieldset></dl></div>
                          <legend id='86uxd'><style id='86uxd'><dir id='86uxd'><q id='86uxd'></q></dir></style></legend>