当前位置:首页 > 数据库 > Docker安装Mysql8

Docker安装Mysql8

2022年08月06日 10:16:53数据库6

CentOS 7.9 安装Docker

拉取mysql 镜像

搜寻仓库里面有那些镜像

docker search mysql

Docker安装Mysql8 _ JavaClub全栈架构师技术笔记
我们拉取mysql:latest的镜像

docker pull mysql:latest

Docker安装Mysql8 _ JavaClub全栈架构师技术笔记
查看镜像
Docker安装Mysql8 _ JavaClub全栈架构师技术笔记
但是我们不知道mysql的具体版本号,我们使用docker inspect 命令来获取容器/镜像的元数据。
然后将这些数据输入到grep 命令来查找version的字符串
-i 或 --ignore-case : 忽略字符大小写的差别

docker image inspect mysql:latest | grep -i version

可以看到mysql 版本号为:8.0.27
Docker安装Mysql8 _ JavaClub全栈架构师技术笔记

在服务器中,创建存放数据,配置文件的文件夹,我这里放在/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 _ JavaClub全栈架构师技术笔记

创建启动容器

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 _ JavaClub全栈架构师技术笔记

显示所有数据库

show database;

Docker安装Mysql8 _ JavaClub全栈架构师技术笔记
使用其中的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 _ JavaClub全栈架构师技术笔记

修改访问密码

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 _ JavaClub全栈架构师技术笔记

这样,就可以通过Navicat等客户端连接我服务器的mysql 了
Docker安装Mysql8 _ JavaClub全栈架构师技术笔记

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

作者:codingXT
来源链接:https://blog.csdn.net/qq_37774171/article/details/121902372

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/18152.html

标签: MySQL命令
分享给朋友:

“Docker安装Mysql8” 的相关文章

MySQL建表(create table)命令详解

MySQL建表(create table)命令详解 create table命令 强调:使用建表命令之前必须使用use命令选择表所在的数据库。create table命令的格式如下: create table tablename...

mysql通过命令行查看数据库

mysql通过命令行查看数据库

1.语法: SHOW DATABASES; 2.语法解析: SHOW DATABASES:显示当前连接的数据库服务器上的所有的数据库信息 3.示例: SHOW DATABASES; 4.运行结...

MYSQL常用命令集合

1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcn...

linux进去mysql数据库的命令

linux进去mysql数据库的命令

mysql -u username -p(适用于设置密码的mysql数据库) 查询当前存在的数据库 1、mysql>show databases。 2、连接数据库 mysql>use vos3000。...

常见的mysql命令

一、连接MySQL       格式: mysql -h主机地址 -u用户名 -p用户密码       1、例1:连接到本机上的MYSQL。      &nbs...

使用MYSQL命令直接导入导出SQL文件

使用MYSQL命令直接导入导出SQL文件

很多时候,我们的数据开发都会用到很多开发利器,比如powerdesigner, navicat等这些软件,虽然好用,但是要收费,在公司里面是禁止使用盗版软件的,怕罚款各方面的,所以我们也不敢直接在公司的机子上装破解版,这个时候,如果我们要导入或者导出sql语句怎么办,虽然也有免费的软件...

MySQL 命令环境变量设置方法

MySQL 命令环境变量设置方法

安装完MySQL之后,大家可以直接打开MySQL的client输入命令,操作MySQL数据库。当然也可以使用dos窗口输入MySQL命令操作MySQL数据库。 方法1: 1、打开dos窗口,具体怎么打开,百度。 2、定位到MySQL安装目录下的bin目录,比如我...

mysql命令详细解

用户权限类 授予权限 GRANT privileges ON databasename.tablename TO 'username'@'host'; privileges:用户的操作权限,如SELECT, INSERT , UPDATE等.如果...

mysql pager用法&命令行命令

下面讲的命令,有部分只能在linux上才有。像pager命令windows上就没有了。分屏:在Linux上,而且不是xwindow时,使用mysql命令行时,输出太多的东西,看不到就很悲剧了。在shell中可以使用管道或是直接用more,但是mysql命令行里怎么办呢?有pager命令...

Docker启动mysql服务

Docker启动mysql服务

1:确保自己的服务器已经安装好了docker 输入 docker info 或者 docker version 2:然后我们去docker hub去下载自己的想要的mysql镜像  找到offic的版本,点击进入 &n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。