1、准备工作

已安装Docker、如阿里云服务器注意开通服务器安全组访问规则端口号

2、下载mysql8.0docker镜像

docker pull mysql:8.0

3、查看下载的docker镜像

[root@tseng ~]# docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql                    8.0                 c60d96bd2b77        7 days ago          514 MB

4、创建挂载目录

mkdir -p /data/mysql/conf
mkdir -p /data/mysql/data
mkdir -p /data/mysql/logs

5、创建my.cnf文件,放在 /data/mysql/conf 目录中,注意配置文件中的端口号

vi /data/mysql/conf/my.cnf
[client]
port = 3308
default-character-set = utf8mb4[mysql]
port = 3308
default-character-set = utf8mb4[mysqld]
# bind-address = 0.0.0.0
# port = 3306max_connections=10000character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci# 设置时区和字符集
# default-time-zone='+8:00'
character-set-client-handshake=FALSE
init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'gtid-mode=ON
enforce-gtid-consistency = ON

6、启动镜像

docker run  --restart=always  --name mysql8.0  -v /data/mysql/cnf:/etc/mysql  -v /data/mysql/data:/var/lib/mysql  -v /data/mysql/log:/var/log  -v /data/mysql/mysql-files:/var/lib/mysql-files -p 3308:3306  -e MYSQL_ROOT_PASSWORD='123456'   -d mysql:8.0
docker run  --restart=always  --name mysql3309.8.0.18  -v /data/mysql3309/cnf:/etc/mysql  -v /data/mysql3309/data:/var/lib/mysql  -v /data/mysql3309/log:/var/log  -v /data/mysql3309/mysql-files:/var/lib/mysql-files -p 3309:3306  -e MYSQL_ROOT_PASSWORD='123456'   -d mysql:8.0.18 --lower_case_table_names=1

mysql 5.7

docker pull mysql:8.0mkdir -p /data/mysql/conf
mkdir -p /data/mysql/data
mkdir -p /data/mysql/logsdocker run -d -p 3308:3306 -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/data:/var/lib/mysql -v /data/mysql/log:/var/log -e MYSQL_ROOT_PASSWORD=Qcd@2022 --name mysql5.7 mysql:5.7

--lower_case_table_names=1 :忽略大小写

解决时间显示问题

[root@tseng ~]# docker exec -it mysql8.0 bash
root@a498923c0bd3:/# date
Tue Aug  3 06:44:32 UTC 2021
root@a498923c0bd3:/# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
root@a498923c0bd3:/# exit
[root@tseng /]# docker restart mysql8.0        -- 重启镜像
[root@tseng /]# docker exec -it mysql8.0 bash
root@a498923c0bd3:/# date
Tue Aug  3 14:45:35 CST 2021

其他方案

root@a498923c0bd3:/# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
root@a498923c0bd3:/# systemctl enable ntpd
root@a498923c0bd3:/# systemctl start ntpd
或者
root@a498923c0bd3:/# timedatactl set-timezone Asia/Shanghai若想改回UTC时间 删除/etc/localtime便可

7、解决无法登录问题;登录mysql

1251 Client does not support authentication protocol requested by server

docker exec -it mysql8.0 bash

8、输入用户名密码进入mysql

root@8e06ede28f4b:/# mysql -uroot -p123456
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 22
Server version: 8.0.26 MySQL Community Server - GPLCopyright (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> 

9、查看密码加密规则

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> SELECT Host, User, plugin from user;
+-----------+------------------+-----------------------+
| Host      | User             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)mysql>

10、修改密码加密规则

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

11、刷新权限,使修改的密码生效

FLUSH PRIVILEGES;

12、查看密码加密规则是否生效

mysql> SELECT Host, User, plugin from user;
+-----------+------------------+-----------------------+
| Host      | User             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | mysql_native_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)mysql> 

注:本人Mac navicat for mysql 不修改密码规则可连接成功,Win10无法连接成功,根据需要修改配置。

13、出现:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 解决

【不重启mysql的解决】使用 select @@global.sql_mode; 查询功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用。

mysql> select @@global.sql_mode;
+----------------------------------------------------------------------------------------------------+
| @@global.sql_mode                                                                                  |
+----------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

去掉ONLY_FULL_GROUP_BY,重新设置值

mysql> set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected (0.00 sec)
mysql> select @@global.sql_mode;
+----------------------------------------------------------------------------------------------------+
| @@global.sql_mode                                                                                  |
+----------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

【重启mysql的解决方案】修改my.cnf文件,在[mysqld] 下方添加以下规则,并重启mysql容器。同时重启mysql连接工具、连接程序重启。

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Docker安装mysql8.0相关推荐

  1. docker安装mysql8,Docker安装Mysql8.0,并配置忽略大小写

    1.拉取镜像 //拉取mysql镜像 docker pull mysql//查看镜像 docker images 2.启动mysql $ docker run --name mysq.db -p 33 ...

  2. Docker安装Mysql8.0,并配置忽略大小写,一句命令搞定

    Docker安装Mysql8.0,并配置忽略大小写,一句命令搞定 docker run --name mysql8.db -p 3307:3306 -e MYSQL_ROOT_PASSWORD=Csd ...

  3. docker 安装mysql8.0并且暴漏外部的连接

    此处是docker安装mysql8.0版本的数据库方法 配置指令 docker run 这里的密码也要改为 MYSQL_ROOT_PASSWORD=123456; CREATE USER 'oyp'@ ...

  4. Win10 Docker 安装mysql8.0

    2019独角兽企业重金招聘Python工程师标准>>> 1. 打开 PowerShell 2.搜索mysql镜像 docker search mysql 3.下载mysql镜像(默认 ...

  5. 阿里云docker安装mysql8.0

    1. mysql的安装 docker pull mysql #直接执行,会下载最新版本的mysql docker pull mysql:8.0.16 #可以指定版本号 2. 在本地创建文件夹 找一个合 ...

  6. Docker安装mysql8.0并配置忽略大小写

    1.拉取镜像 docker pull mysql 2.查看镜像是否下载成功 docker images 3.启动mysql docker run --name mysql -p 3306:3306 - ...

  7. mysql 8.0 docker_Docker安装MySQL8.0的实现方法

    环境:MacOS_Cetalina_10.15.1.Mysql8.0.18.Docker_2.0.0.3 1.docker仓库搜索mysql docker search mysql 2.docker仓 ...

  8. 使用docker安装mysql8及mysql5.7

    使用系统:centos7.6 1.安装命令 1.1安装mysql8 mkdir -p /usr/local/mysql/conf.d mkdir -p /usr/local/mysql/logs mk ...

  9. docker安装mysql8教程

    docker安装mysql8.0教程(小白教程) 1.查看可用的 MySQL 版本 MySQL 镜像库:Docker Hub . 我们还可以用 docker search mysql 命令来查看可用版 ...

最新文章

  1. Twitter新计划:审视自家算法里的“无心之失”
  2. easyUI与选择WebUI
  3. SQL 2008中修改表结构提示“阻止保存要求重新创建表的更改”
  4. Maven初探-如何快速入手一个项目
  5. php 获取动态时间,PHP 显示动态时间
  6. 用二维数组实现矩阵转置
  7. Android开发之通过ImageView名称从文件夹拿到ImageView的Drawable对象的方法
  8. mybatisPlus中的updateById无法更新null值的字段
  9. WebDriver高级应用实例(3)
  10. LNMT/LAMT实现动静分离、负载均衡和会话保持
  11. teamcity mysql 配置_TeamCity
  12. vue视频教程大全下载
  13. 保姆级教学——虚拟机器人平台vrep(coppeliaSim)的机器人平台搭建
  14. Android练手——分贝计
  15. c++实现 龙格库塔经典4阶算法
  16. 感应加热ZVS制作图解
  17. ai时代不被取代的职业_如何在AI时代证明您的IT职业生涯
  18. 两台电脑大文件传输的详细教程
  19. 美团CAT客户端(windows版)接入指南
  20. 推荐一款word转pdf超好用的包:aspose-words(解决中文乱码)

热门文章

  1. linux中tldr安装
  2. 分析Ajax爬取今日头条街拍美景
  3. CTGU微型计算机实验8 代码在最下面
  4. css样式中的属性区分大小写吗,css属性区分大小写吗?
  5. 深圳市航空业协会国际物流商会成立会长朱庆峰接受《宁波航运》专访
  6. Centos7查看外网IP地址
  7. SAP接口 S/4 HANA Cloud API测试教程(POST)
  8. Spring--注解回顾
  9. (素材源码)猫猫学IOS(十五)UI之曾经大热的打砖块小游戏
  10. 简单复现 残差网络、Googlenet、mobilenet、SqueezeNet、ShuffleNet、Densenet