Docker安装MySql遇到的问题解决

 更新时间:2024年02月03日 11:17:06   作者:你小子在看什么……  
本文主要介绍了Docker安装MySql遇到的问题解决,详细的介绍了查询中文乱码问题以及主从同步中遇到的问题,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

一、mysql查询中文乱码问题

由于字符集设置不正确导致。

解决方案:

1. 进入mysql中进行查看数据库字符集

show variables like 'character%';

character_set_client 

character_set_connection

连接到 MySQL 服务器的客户端使用的字符集
character_set_database当前数据库的默认字符集
character_set_results查询结果返回给客户端时使用的字符集
character_set_serverMySQL 服务器使用的默认字符集

 返回的字符集中,character_set_databasecharacter_set_server等都为latin1字符集,所以会出现乱码。

2. 修改 my.cnf 中的配置

我的mysql是挂载在下 /app/mysql-master/conf, 所以我只需要到该路径下修改。

vim /app/mysql-master/conf/my.cnf
[client]
# 设置客户端的默认字符集为 utf8
default-character-set = utf8

[mysqld]
# 设置服务器的排序规则为 utf8_general_ci
collation-server = utf8_general_ci

# 设置服务器的默认字符集为 utf8
character-set-server = utf8

3. 重启mysql容器,使得容器重新加载配置文件

docker restart mysql-master

4. 测试结果

二、主从同步中遇到的问题

在同步测试过程中发现从机并没有同步主机的数据,并且查看从机的状态

# \G 可以将横向的结果集表格转换成纵向展示。
# slave status的字段比较多,纵向展示比友好
show slave status \G;

如果 Slave_IO_Running 和 Slave_SQL_Running 不为 Yes。

2.1 Slave_IO_Running:Connecting 的解决方案

1. 确定宿主机防火墙开放mysql的映射端口

如果不是生产环境,可以直接简单粗暴先暂时关闭防火墙进行排错。

# 查看防火墙状态
systemctl status firewalld

# 暂时关闭防火墙
systemctl stop firewalld

# 永久关闭防火墙
systemctl disable firewalld

2. 检查配置文件中 server_id 是否唯一

如果修改了配置文件需要重启容器使得生效,

docker restart mysql-master

ps:主机和从机都查看一遍

3. 检查的同步状态

3.1 查看主服务器当前的二进制日志状态

show master status;

3.2 进入从机中设置同步配置

如果已经启动和同步,需要先关闭同步

stop slave;
-- 格式:
-- change master to master_host='宿主机ip',master_user='主数据库配置的主从复制用户名',master_password='主数据库配置的主从复制用户密码',master_port=宿主机主数据库端口,master_log_file='主数据库主从同步状态的文件名File',master_log_pos=主数据库主从同步状态的Position,master_connect_retry=连接失败重试时间间隔(秒);

change master to master_host='192.168.xxx.xxx',master_user='slave',master_password='123456',master_port=3307,master_log_file='mall-mysql-bin.000001',master_log_pos=769,master_connect_retry=30;
-- 配置完成后在进行启动同步
start slave;

ps:根据主机配置进行设置。

最后查看主机中的主从复制的状态

# \G 可以将横向的结果集表格转换成纵向展示。
# slave status的字段比较多,纵向展示比友好
show slave status \G;

ps:如果同步不成功,可以在这里查看日志。

2.2 authentication plugin 'caching_sha2_password' cannot be loaded

原因主要是由于MySQL 8.0版本引入了新的默认身份验证插件 caching_sha2_password,而一些旧的MySQL客户端或库可能不支持这个插件,导致连接问题。解决方案 ↓↓↓ ↓↓↓

1. 可以查看 user 中的用户数据

use mysql;
select host,user,plugin from user;

2. 所以需要修改认证插件统一为 mysql_native_password

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

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

3. 查看是否修改成功

到此这篇关于Docker安装MySql遇到的问题解决的文章就介绍到这了,更多相关Docker安装MySql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Docker创建MongoDB容器并添加root密码验证与更多用户详细步骤

    Docker创建MongoDB容器并添加root密码验证与更多用户详细步骤

    MongoDB是一个著名的面向文档的数据库,被许多现代Web应用程序使用,下面这篇文章主要给大家介绍了关于Docker创建MongoDB容器并添加root密码验证与更多用户的相关资料,需要的朋友可以参考下
    2023-01-01
  • Docker单机部署Doris超详细图文教程

    Docker单机部署Doris超详细图文教程

    Apache Doris是一款基于MPP架构的分析型数据库,由百度大数据部研发,支持亚秒级响应时间的实时数据分析,本文旨在为学习Doris的同学提供一个快速的操作指引,以便更高效地挖掘数据背后的价值,对docker 部署Doris 数据库使用感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Docker的基本概念、安装步骤以及一些简单的用法

    Docker的基本概念、安装步骤以及一些简单的用法

    Docker 是一种开源的容器化平台,允许开发者打包应用及其依赖项到一个可移植的容器中,容器可以在任何支持Docker的环境中运行,这使得应用的部署和管理变得更加简单和高效,本文介绍Docker的基本概念、安装步骤以及一些简单的用法,感兴趣的朋友一起看看吧
    2024-11-11
  • Docker Dockerfile的使用实例

    Docker Dockerfile的使用实例

    这篇文章主要介绍了Docker Dockerfile的使用实例的相关资料,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • 修改Docker镜像仓库为阿里云镜像或163镜像的实现

    修改Docker镜像仓库为阿里云镜像或163镜像的实现

    docker本身的仓库非常慢,但是国内有阿里云的镜像仓库非常快,本文主要介绍了修改Docker镜像仓库为阿里云镜像或163镜像的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • docker搭建redis三主三从集群的实现步骤

    docker搭建redis三主三从集群的实现步骤

    本文主要介绍了docker搭建redis三主三从集群,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 阿里云CentOS 6.5 安装Docker详细步骤

    阿里云CentOS 6.5 安装Docker详细步骤

    这篇文章主要介绍了阿里云CentOS 6.5 安装Docker的相关资料,现在都是云时代和大数据时代,希望大家也能跟着时代的步伐,需要的朋友可以参考下
    2016-10-10
  • Linux搭建Docker环境的详细过程(最新推荐)

    Linux搭建Docker环境的详细过程(最新推荐)

    Docker从17.03版本之后分为CE(Community Edition: 社区版)和EE(Enterprise Edition: 企业版),相对于社区版本,企业版本强调安全性,但需付费使用,这里我们使用社区版本即可,这篇文章给大家介绍Linux搭建Docker环境的详细过程,感兴趣的朋友一起看看吧
    2025-04-04
  • Docker网络配置及部署SpringCloud项目详解

    Docker网络配置及部署SpringCloud项目详解

    bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上,下面这篇文章主要给大家介绍了关于Docker网络配置及部署SpringCloud项目的相关资料,需要的朋友可以参考下
    2023-01-01
  • Docker构建Java镜像并部署Java项目的完整步骤

    Docker构建Java镜像并部署Java项目的完整步骤

    这篇文章主要给大家介绍了关于Docker构建Java镜像并部署Java项目的完整步骤,Docker是一种容器化技术,可以帮助开发者轻松打包应用程序和依赖项,并在任何地方运行它们,需要的朋友可以参考下
    2023-10-10

最新评论