首页 > 数据库 >docker 安装mysql

docker 安装mysql

时间:2023-05-12 15:35:49浏览次数:34  
标签:-- character mysql home docker password 安装

一、拉取镜像

# 拉取镜像
docker pull mysql
 
# 或者
docker pull mysql:latest
#执行版本
docker pull mysql:5.7 # 以上两个命令是一致的,默认拉取的就是 latest 版本的 # 我们还可以用下面的命令来查看可用版本: docker search mysql

 二、查看镜像

使用以下命令来查看是否已安装了 mysql镜像

docker images

 三、运行镜像

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

 

======或者创建你喜欢的目录:

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

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
================================================

 

 

 

五、查看容器内部

 创建mysql配置文件:my.cnf

cd /usr/local/mysql
 
ll
 
cd conf
 
vi my.cnf

在 my.cnf 文件中 写入如下内容:

 

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

[mysqld]

# 设置东八区时区
default-time_zone = '+8:00'

# 设置密码验证规则,default_authentication_plugin参数已被废弃

# 改为authentication_policy

#default_authentication_plugin=mysql_native_password
authentication_policy=mysql_native_password

# 限制导入和导出的数据目录
# 为空,不限制导入到处的数据目录;
# 指定目录,必须从该目录导入到处,且MySQL不会自动创建该目录;
# 为NULL,禁止导入与导出功能
#secure_file_priv=/var/lib/mysql
secure_file_priv=

init_connect='SET collation_connection = utf8mb4_0900_ai_ci'

init_connect='SET NAMES utf8mb4'

character-set-server=utf8mb4

collation-server=utf8mb4_0900_ai_ci

skip-character-set-client-handshake

skip-name-resolve

docker run -d -p 3307:3306 --privileged=true -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 mysql:5.7

参数说明:

--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

-v /home/mysql/conf/my.cnf:/etc/my.cnf:映射配置文件

-v /home/mysql/data:/var/lib/mysql:映射数据目录

5、设置mysql字符编码

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

init_connect='SET collation_connection = utf8_unicode_ci'

init_connect='SET NAMES utf8'

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

skip-name-resolv

默认的鉴权方式,我们修改为mysql_native_password,不然的话连接会报错。因为在mysql8以后的默认加密方式改变了,由 mysql_native_password 改为了caching_sha2_password。这种加密凡是在客户端无法访问,客户端支持的是mysql_native_password 。我们先进行第七步。

七、重启mysql服务,使其配置生效

docker restart mysql

八、设置docker启动时启动mysql

docker update mysql --restart=always

九、重启mysql

docker restart mysql

十、授权远程访问

不进行授权直接登陆的话会报错的,如图

 错误内容:

Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Connection refused: connect
Connection refused: connect

10.1 进入容器内部

docker exec -it mysql /bin/bash

 10.2 登陆mysql

mysql -u root -p

此时我们使用mysql客户端连接服务器是失败的,因为默认的root不具有远程连接的权限。

10.4 查看用户连接情况

select host, user, plugin,  authentication_string, password_expired from user;

 我们看到root用户只有localhost的连接权限

10.5 修改密码认证方式

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

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

-- 刷新权限
FLUSH PRIVILEGES;

 

10.6 退出容器

 先输入exit退出mysql,再输入exit退出容器。

 

标签:--,character,mysql,home,docker,password,安装
From: https://www.cnblogs.com/liyanxi/p/17394203.html

相关文章

  • centos7断电重启后docker无法启动的其中一种情况
    一、发现问题在一个很久没用docker的虚拟机上想跑一个docker容器,然后发现没启动,通过systemctlstartdocker启动直接报错:Jobfordocker.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusdocker.service"and"journalctl-xe"for......
  • mysql8.0.33的安装教程
    1、1 MySQL有四种不同的版本:community版、standard版、enterprise版和cluster版。Community版Community版是MySQL最常用的免费版本,它是基于GPL(GNU通用公共许可证)许可协议发布的。它是开源的,可以利用社区的贡献来维护和改进。有非常多的支持和帮助,可以从官方网站下载。Standar......
  • ubuntu安装中文
    一、简介二、安装三、问题 一、简介这里安装输入法一般都是有界面的ubuntu的版本。所以使用的是界面操作。二、安装1.打开系统设置2.打开语言管理 3.查看有没有简体中文,如果没有,就要按下图安装,如果已经安装,可以跳过这步。4.点击加号,找到chine......
  • nginx源码安装步骤
    1、安装依赖包yuminstall-ygccyuminstall-ypcrepcre-develyuminstall-yzlibzlib-develyuminstall-yopensslopenssl-devel2、下载nginx源码包并解压 3、进入解压后的包nginx-1.16.1中4、执行命令 ./configure【参数可选:--prefix=/path/可指定ng......
  • window docker nginx容器 创建容器,把本地目录可以映射到nginx容器中
    在Windows环境下,您可以按照以下步骤创建一个映射了本地目录的Nginx容器:1.首先,创建一个本地目录,例如`C:\nginx`。2.使用以下命令启动Nginx容器,并将本地目录映射到容器中:```shdockerrun--namemy-nginx-p8080:80-vC:/nginx:/usr/share/nginx/html:ro-dnginx......
  • Mysql-MHA集群
    基本概念由来MHA(MasterHighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案。它由日本DeNA公司youshimaton(现就职于Facebook公司)开发。原理组成由两部分组成:MHAManager(管理节点)和MHANode(数据节点)MHAManager可单独部署在一台独立的机器上管理多个mast......
  • Mysql-Mycat集群
    读写分离基本概念MySQL虽然是世界上使用最广泛的免费数据库,但是并不能满足实际的一个需求,在高并发高可用等方面。我们主要是通过主从复制来同步数据,再通过读写分离来提升数据库的并发能力。工作原理主数据库上执行写操作,并将写操作的结果同步到所有从数据库。从数据库上只处......
  • 服务器上安装Power BI Data Gateway
    安装时注意事项  服务器开通好网络策略,例如一些相关的目标地址和IP加到服务器防火墙里,服务器可以联网后,还需要做浏览器相关设置,如下:   1)浏览器Tools->Internetoptions->security->customlevel->Scripting->Enableactivescripting&enablescriptingofJavaapple......
  • percona-server-rocksdb-8.0.32 安装
    MyRocks是关系型数据库Mysql基于RocksDB的存储引擎,一个可嵌入的、持久的键值存储。PerconaMyRocks是集于PerconaServerforMySQL的.RocksDB存储基于日志结构的合并树(LSMtree)。它针对快速存储进行了优化,有出色的空间和写入效率以及可接受的读取性能。因此,如果您的工作负......
  • Ubuntu下开启MySQL远程连接权限
    一、将用户的访问地址改为%打开终端登录mysql数据库:mysql-uroot-p查看user表mysql> usemysql;Databasechangeedmysql>selecthost,user,authentication_stringfromuser;注意此处网上很多教程写的是password,那是老版的了,现在的MySQL的mysql数据库的user表中已经没......