docker安装mysql8.0

指定mysql密码(openssl rand -base64 15)

3k0LjRFyWgDBaduquotC

当然mysql也是可以自动生成的.

安装 mysql

安装8.0

cd ~ && mkdir -pv ~/docker/mysql/data80

docker run --name mysql-v80 \
-p 3386:3306  \
-e MYSQL_ROOT_PASSWORD=3k0LjRFyWgDBaduquotC \
-v "$PWD/docker/mysql/data80":/var/lib/mysql  \
-d  mysql:8.0  \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci

安装5.7(没测试,应该问题不大)

cd ~ && mkdir -pv ~/docker/mysql/data57

docker run --name mysql-v57 \
-p 3376:3306  \
-e MYSQL_ROOT_PASSWORD=3k0LjRFyWgDBaduquotC \
-v "$PWD/docker/mysql/data57":/var/lib/mysql  \
-d  mysql:5.7  \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci

查看MySQL容器

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
ba60581bbb0d        mysql:8.0           "docker-entrypoint.s…"   6 seconds ago       Up 4 seconds        33060/tcp, 0.0.0.0:3386->3306/tcp   mysql-v80

进入容器,登陆MySQL

$ docker exec -it mysql-v80 /bin/bash
root@ba60581bbb0d:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.18 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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> 

客户端字符集设置

  • Server
  • Db
  • Client
  • Conn
mysql> set names utf8mb4;
Query OK, 0 rows affected (0.00 sec)

mysql> status;
--------------
mysql  Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:      8
Current database:   
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     8.0.18 MySQL Community Server - GPL
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:        /var/run/mysqld/mysqld.sock
Uptime:         4 min 44 sec

Threads: 2  Questions: 14  Slow queries: 0  Opens: 115  Flush tables: 3  Open tables: 35  Queries per second avg: 0.049
--------------

mysql>

账号权限

# 默认权限,root是具有所有权限的,而且host存在%值
mysql> select Host,User from mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

更改ROOT用户的native_password密码

  • 更改加密规则
    ALTER USER 'root'@'localhost' IDENTIFIED BY '3k0LjRFyWgDBaduquotC' PASSWORD EXPIRE NEVER;

  • 更新用户密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '3k0LjRFyWgDBaduquotC';

  • 刷新权限
    flush privileges;

采用phpMyAdmin链接

本机地址:
http://localhost:8081/phpMyAdmin/index.php?server=4

显示结果

docker安装mysql8.0_第1张图片
image.png

备注:

删除所有无用的容器

docker stop $(docker ps -qa) && docker rm $(docker ps -qa)

你可能感兴趣的:(docker安装mysql8.0)