天天看点

在docker中安装mysql详细攻略一、安装mysql

一、安装mysql

  1. 查询mysql

    docker search mysql

  2. 下载需要的版本

    docker pull mysql:tag

    tag代表版本号,没有代表是lastest的
  3. 根据镜像启动容器

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

  4. 查询mysql运行状态

    docker ps

    如果正常启动,就能查到如下结果
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
b4b69c5e900f        mysql               "docker-entrypoint..."   34 minutes ago      Up 30 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql01
           
  1. 连接数据库

    docker exec -it mysql01 bash

    那个***mysql01***是设置的容器名,执行完后进入到如下的界面
[[email protected] ~]# docker exec -it mysql01 bash
[email protected]:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.17 MySQL Community Server - GPL
           
  1. 查看mysql是否正常启动

    show databases

mysql> show databases;  
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

           

出现上面的那个说明数据库已经正常启动

7. 在虚拟机外使用Navicate连接数据库可能会出现如下的异常

7.1. 查看用户信息
mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host      | user             | plugin                | authentication_string                                                  |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| localhost | root             | mysql_native_password | *E6CC90B878B948C35E92B003C792C46C58C4AF40                              |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
*z3uANJFSvbTEwhOS.Xi/Wbu7zgLBnxcUq4mjjz6uWSC |password | $A$005$xNK;^eO n"YNh.#LV
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

           

备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

7.2. 修改权限和用户密码

修改权限的命令:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'

修改后再次查询:

select host,user,plugin,authentication_string from mysql.user;

+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host      | user             | plugin                | authentication_string                                                  |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| localhost | root             | mysql_native_password | *E6CC90B878B948C35E92B003C792C46C58C4AF40                              |
| %         | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
*z3uANJFSvbTEwhOS.Xi/Wbu7zgLBnxcUq4mjjz6uWSC |password | $A$005$xNK;^eO n"YNh.#LV
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
           
7.3. 如果还是没有连接上,很有可能是防火墙的问题,在防火墙上添加3306端口