docker 安装mysql 及第一次远程连接不上解决

江湖规矩,有图为证,先上图

dbeaver 连接docker中的mysqldocker中的mysql
docker中的mysql

安装mysql

#康康docker启动没
[kuro@jiayeli ~]$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
     Active: active(running) since Wed 2021-12-22 21:58:06 CST; 1h 4min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 3429 (dockerd)
      Tasks: 78
     Memory: 144.9M
        CPU: 9.125s
     CGroup: /system.slice/docker.service
active(running) 就算启动了

看看有mysql的镜像了没

[kuro@jiayeli ~]$ docker images 
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
mysql         latest    bbf6571db497   2 weeks ago    516MB
这个是刚刚装的, tag: latest就是最新版的

看看image仓库中可用的mysql

[kuro@jiayeli ~]$ docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11848     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4521      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   888                  [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   92                   
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   90                   
centurylink/mysql                 Image containing mysql. Optimized to be link…   59                   [OK]
databack/mysql-backup             Back up mysql databases to... anywhere!         54                   
prom/mysqld-exporter                                                              46                   [OK]
deitch/mysql-backup               REPLACED! Please use http://hub.docker.com/r…   41                   [OK]
tutum/mysql                       Base docker image to run a MySQL database se…   35                   
linuxserver/mysql                 A Mysql container, brought to you by LinuxSe…   34                   
schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic backup…   31                   [OK]
mysql/mysql-router                MySQL Router provides transparent routing be…   23                   
centos/mysql-56-centos7           MySQL 5.6 SQL database server                   21                   
arey/mysql-client                 Run a MySQL client from a docker container      20                   [OK]
fradelg/mysql-cron-backup         MySQL/MariaDB database backup using cron tas…   18                   [OK]
genschsa/mysql-employees          MySQL Employee Sample Database                  9                    [OK]
yloeffler/mysql-backup            This image runs mysqldump to backup data usi…   7                    [OK]
openshift/mysql-55-centos7        DEPRECATED: A Centos7 based MySQL v5.5 image…   6                    
devilbox/mysql                    Retagged MySQL, MariaDB and PerconaDB offici…   3                    
ansibleplaybookbundle/mysql-apb   An APB which deploys RHSCL MySQL                3                    [OK]
idoall/mysql                      MySQL is a widely used, open-source relation…   3                    [OK]
centos/mysql-80-centos7           MySQL 8.0 SQL database server                   2                    
jelastic/mysql                    An image of the MySQL database server mainta…   2                    
widdpim/mysql-client              Dockerized MySQL Client (5.7) including Curl…   1                    [OK]

如果有镜像了直接启动,没有会自动拉取,然后启动

[kuro@jiayeli ~]$ docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=你的密码 -d mysql

-p: 将docker中的地址maping到本地,如果本地端口3306被占用了就换一个,不要那么执着端口冲突了启动不起来
-e: 初始化用户密码
-d: 以守护进程运行,即放后台运行,不然会。

进入docker,进行mysql的一些配置

[kuro@jiayeli ~]$ docker exec -it mysql /bin/bash
root@a7f7b93d4d52:/# 
docker exec -it mysql /bin/bash

使用/bin/bash 以交互模式进入mysql-test 这个docker内
-i:提供一个接口
-t: 带终端

使用设置的密码进入mysql,设置用户host为允许别的机器地址访问,刷新权限
一般到这就结束了,但我的还是从本地机器连不上docker内mysql,一顿拾腾发现,还需要重新更新一下msyql的用户host才行;如下:

root@a7f7b93d4d52:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 8.0.27 MySQL Community Server - GPL
# 修改root用户密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码'
# 添加用户并设置所有ip都能访问
mysql> CREATE USER '你用创建的用户'@'%' IDENTIFIED WITH mysql_native_password BY '你要设置的密码';
mysql> GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%';
mysql> flush privileges;

#看看用户对应的host设置,% 表示所有都可以连

mysql> select host, user, authentication_string, plugin from mysql.user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| %         | kuro             | *4D420924005402A65B2286393CAD28DFE23D914E                              | mysql_native_password |
| %         | root             | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              | mysql_native_password |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root             | $A$005$pmt/&wj4h
                                                 �!m^yWlJDZ1VlRW/Przd33Gjn3SEGUHJRHRLQr35VfW5mE74 | caching_sha2_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+

update host

mysql> update 用户 set host='%' where user='用户';
```sql

接下来是事情就像刚刚开始的那样,在本地拿dbeaver连,一连就连上了 hhhhhhh...

版权声明:本文为weixin_46661903原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。