首页 > 数据库 >Docker安装Mysql8

Docker安装Mysql8

时间:2022-11-09 15:01:51浏览次数:78  
标签:Mysql8 my cnf mysql home Docker password 安装 xt


​​CentOS 7.9 安装Docker​​

拉取mysql 镜像

搜寻仓库里面有那些镜像

docker search mysql

Docker安装Mysql8_mysql


我们拉取mysql:latest的镜像

docker pull mysql:latest

Docker安装Mysql8_docker_02


查看镜像

Docker安装Mysql8_mysql_03


但是我们不知道mysql的具体版本号,我们使用docker inspect 命令来获取容器/镜像的元数据。

然后将这些数据输入到grep 命令来查找version的字符串

-i 或 --ignore-case : 忽略字符大小写的差别

docker image inspect mysql:latest | grep -i version

可以看到mysql 版本号为:8.0.27

Docker安装Mysql8_docker_04

在服务器中,创建存放数据,配置文件的文件夹,我这里放在/home/xt(自己的用户名)下面

mkdir -p /home/xt/mysql/data /home/xt/mysql/conf

将文件的所有权交给root 用户 ​​Linux chown 命令​

chown root /home/xt/mysql

设置文件夹的用户权限 ​​Linux chmod命令​

chmod -R 755 /home/xt/mysql

mysql配置文件

在Windows本地编辑一个my.cnf 配置文件,写入内容如下,
然后移动到服务器的/home/xt/mysql/conf文件夹下

# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
default_authentication_plugin=mysql_native_password

# Custom config should go here
!includedir /etc/mysql/conf.d/


[client]
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4

[mysqld]
character_set_server = utf8mb4
collation_server = utf8mb4_bin

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

通过xftp软件将my.cnf 配置文件移动到如图路径位置(这个文件夹是我自己创的,你们移动到自己创的文件夹下面)

Docker安装Mysql8_docker_05

创建启动容器

docker run -p 3306:3306 --name mysql -v /home/xt/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/xt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxxxx -d mysql:latest

命令说明:

  • -p 3306:3306 : 将容器的 3306 端口映射到主机的 3306 端口
  • –name mysql : 启动后容器名为 mysql
  • -v /home/xt/mysql/conf/my.cnf:/etc/mysql/my.cnf : 将主机的/home/xt/mysql/conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf (配置文件)
  • -v /home/xt/mysql/data:/var/lib/mysql : 将主机的/home/xt/mysql/data挂载到容器的 /var/lib/mysql (data目录为mysql配置的数据文件存放路径,建议挂载,是存储数据的,容器down掉,还能再次挂载数据。)
  • -e MYSQL_ROOT_PASSWORD=xxxxx  :   初始化 root 用户的密码
  • -d 后台运行容器

进入容器内部

docker exec -it mysql /bin/bash

连接到mysql,输入上面设置的密码

mysql -u root -p

Docker安装Mysql8_配置文件_06

显示所有数据库

show database;

Docker安装Mysql8_mysql_07


使用其中的mysql数据库

use mysql;

展示user 表的host,user和plugin

select host,user,plugin from user;

如果root用户的插件不为mysql_native_password,则需要修改为mysql_native_password,

虽然最新版MySql换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。但是一些客户端工具比如Navicat 中还找不到新的身份验证插件(caching_sha2_password),因此,我们需要将mysql用户使用的 登录密码加密规则 还原成 mysql_native_password,方便客户端工具连接使用。

update user set plugin='mysql_native_password' where user='root';

Docker安装Mysql8_配置文件_08

修改访问密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

最后刷新权限
​Mysql的权限问题以及flush privileges​​flush privileges的使用场景
当我们直接用DML语句修改系统权限表(mysql.user、mysql.db、mysql.tables_priv、mysql.columns_priv)时,内存中的权限数组是不会同步更新的,此时我们就需要flush privileges来更新内存权限数据了。

flush privileges;

Docker安装Mysql8_配置文件_09

这样,就可以通过Navicat等客户端连接我服务器的mysql 了

Docker安装Mysql8_docker_10

如果有什么问题请到评论区留言,如果我看到了,一定会第一时间回复大家。


标签:Mysql8,my,cnf,mysql,home,Docker,password,安装,xt
From: https://blog.51cto.com/u_14020077/5836622

相关文章

  • 4.jenkins安装配置升级
    1.什么是jenkinsjenkins是一个开源提供友好操作界面的持续集成的工具,由java开发而成。jenkins是一个调度平台,本身不处理任何事情,都是借由插件完成所有的工作2.为什么使......
  • Docker 安装 Jenkins
    一、Docker介绍1、什么是dockerDocker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docke......
  • windows版数据库mysql的安装
    一、下载MySQLMysql官网下载地址:MySQL::DownloadMySQLInstaller(ArchivedVersions)1.选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传......
  • vue之cli脚手架安装和webpack-simple模板项目生成
    ue-cli是一个官方发布vue.js项目脚手架,使用vue-cli可以快速创建vue项目。GitHub地址是:​​https://github.com/vuejs/vue-cli​​一、安装Nodejs首先需要安装Node环......
  • Ubuntu离线安装 MySQL 5.7
    来源:https://www.ngui.cc/article/show-581968.html?action=onClick一、所需环境操作系统:Ubuntu 20.04数据库:MySQL5.7.34网络情况:内网服务器,无法访问互联网资源......
  • RocketMQ学习-服务安装、及服务端命令学习
    写在前面简单说明一下,RocketMQ是阿里团队开发,并推到Apache社区,它的入门稍微有点难(主要是环境、网络、社区的资源有限),下面我简单介绍一下一、安装、部署这里包括三个Windows......
  • LINUX 安装 NGINX ‘STRUCT CRYPT_DATA’ HAS NO MEMBER NAMED ‘CURRENT_SALT’ 解决
    出现这个问题一般不是Nginx的版本高就是服务器版本高的问题解决办法:在nginx安装文件夹下输入[[email protected]]#vimsrc/os/unix/ngx_user.c进去编辑找到红......
  • ubuntu安装 ffmpeg 视频插件
     一、安装相关依赖或工具sudoaptinstall-yyasmsudoapt-getinstall-yautoconfautomakebuild-essentialgitlibass-devlibfreetype6-devlibsdl2-dev\lib......
  • linux下非root用户安装Anaconda
    1、准备Anaconda3-2020.02-Linux-x86_64.sh安装程序2、上传至服务器,Anaconda3-2020.02-Linux-x86_64.sh是可执行程序,操作命令如下:shAnaconda3-2020.02-Linux-x86_64.......
  • react-native-device-info(获取设备信息)在React Native安装使用步骤
    官方参考地址:https://github.com/react-native-community/react-native-device-info1.安装//下载依赖npminstall--savereact-native-device-info||yarnadd......