Docker安装MySql遇到的问题解决

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

一、mysql查询中文乱码问题

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

Docker安装MySql遇到的问题解决插图

解决方案:

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

show variables like character%;

Docker安装MySql遇到的问题解决插图1

character_set_client 

character_set_connection

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

返回的字符集中,character_set_database、character_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

Docker安装MySql遇到的问题解决插图2

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

docker restart mysql-master

4. 测试结果

Docker安装MySql遇到的问题解决插图3

Docker安装MySql遇到的问题解决插图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安装MySql遇到的问题解决插图5

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

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;

Docker安装MySql遇到的问题解决插图6

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遇到的问题解决插图7

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


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容