Docker安裝MySql遇到的問題解決
一、mysql查詢中文亂碼問題
由于字符集設(shè)置不正確導(dǎo)致。

解決方案:
1. 進入mysql中進行查看數(shù)據(jù)庫字符集
show variables like 'character%';

character_set_client character_set_connection | 連接到 MySQL 服務(wù)器的客戶端使用的字符集 |
| character_set_database | 當(dāng)前數(shù)據(jù)庫的默認(rèn)字符集 |
| character_set_results | 查詢結(jié)果返回給客戶端時使用的字符集 |
| character_set_server | MySQL 服務(wù)器使用的默認(rèn)字符集 |
返回的字符集中,character_set_database、character_set_server等都為latin1字符集,所以會出現(xiàn)亂碼。
2. 修改 my.cnf 中的配置
我的mysql是掛載在下 /app/mysql-master/conf, 所以我只需要到該路徑下修改。
vim /app/mysql-master/conf/my.cnf
[client] # 設(shè)置客戶端的默認(rèn)字符集為 utf8 default-character-set = utf8 [mysqld] # 設(shè)置服務(wù)器的排序規(guī)則為 utf8_general_ci collation-server = utf8_general_ci # 設(shè)置服務(wù)器的默認(rèn)字符集為 utf8 character-set-server = utf8

3. 重啟mysql容器,使得容器重新加載配置文件
docker restart mysql-master
4. 測試結(jié)果


二、主從同步中遇到的問題
在同步測試過程中發(fā)現(xiàn)從機并沒有同步主機的數(shù)據(jù),并且查看從機的狀態(tài)
# \G 可以將橫向的結(jié)果集表格轉(zhuǎn)換成縱向展示。 # slave status的字段比較多,縱向展示比友好 show slave status \G;
如果 Slave_IO_Running 和 Slave_SQL_Running 不為 Yes。
2.1 Slave_IO_Running:Connecting 的解決方案
1. 確定宿主機防火墻開放mysql的映射端口
如果不是生產(chǎn)環(huán)境,可以直接簡單粗暴先暫時關(guān)閉防火墻進行排錯。
# 查看防火墻狀態(tài) systemctl status firewalld # 暫時關(guān)閉防火墻 systemctl stop firewalld # 永久關(guān)閉防火墻 systemctl disable firewalld
2. 檢查配置文件中 server_id 是否唯一

如果修改了配置文件需要重啟容器使得生效,
docker restart mysql-master
ps:主機和從機都查看一遍
3. 檢查的同步狀態(tài)
3.1 查看主服務(wù)器當(dāng)前的二進制日志狀態(tài)
show master status;
3.2 進入從機中設(shè)置同步配置
如果已經(jīng)啟動和同步,需要先關(guān)閉同步
stop slave;
-- 格式: -- change master to master_host='宿主機ip',master_user='主數(shù)據(jù)庫配置的主從復(fù)制用戶名',master_password='主數(shù)據(jù)庫配置的主從復(fù)制用戶密碼',master_port=宿主機主數(shù)據(jù)庫端口,master_log_file='主數(shù)據(jù)庫主從同步狀態(tài)的文件名File',master_log_pos=主數(shù)據(jù)庫主從同步狀態(tài)的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:根據(jù)主機配置進行設(shè)置。
最后查看主機中的主從復(fù)制的狀態(tài)
# \G 可以將橫向的結(jié)果集表格轉(zhuǎn)換成縱向展示。 # slave status的字段比較多,縱向展示比友好 show slave status \G;

ps:如果同步不成功,可以在這里查看日志。
2.2 authentication plugin 'caching_sha2_password' cannot be loaded
原因主要是由于MySQL 8.0版本引入了新的默認(rèn)身份驗證插件 caching_sha2_password,而一些舊的MySQL客戶端或庫可能不支持這個插件,導(dǎo)致連接問題。解決方案 ↓↓↓ ↓↓↓
1. 可以查看 user 中的用戶數(shù)據(jù)
use mysql; select host,user,plugin from user;
2. 所以需要修改認(rèn)證插件統(tǒng)一為 mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
3. 查看是否修改成功

到此這篇關(guān)于Docker安裝MySql遇到的問題解決的文章就介紹到這了,更多相關(guān)Docker安裝MySql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker搭建nginx實現(xiàn)負(fù)載均衡的示例代碼
本隨著互聯(lián)網(wǎng)應(yīng)用規(guī)模不斷擴大,原有的單一服務(wù)器已經(jīng)無法滿足高并發(fā)和高可用性的要求,本文就來介紹docker搭建nginx實現(xiàn)負(fù)載均衡的示例代碼,感興趣的可以了解一下2023-12-12
Docker鏡像倉庫的垃圾回收機制深度清理后端存儲空間的實現(xiàn)
本文主要介紹了Docker鏡像倉庫的垃圾回收機制深度清理后端存儲空間的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04
講解使用Docker搭建Java Web運行環(huán)境
本篇文章詳細(xì)的介紹了使用Docker搭建Java Web運行環(huán)境,想要學(xué)習(xí)docker的同學(xué)可以了解一下。2016-11-11
docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟(基礎(chǔ)示例篇)
這篇文章主要給大家介紹了docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟,docker是一個開源的應(yīng)用容器引擎,可以為我們提供安全、可移植、可重復(fù)的自動化部署的方式,需要的朋友可以參考下2023-10-10
docker swarm如何在指定的node上運行指定的容器
這篇文章主要介紹了docker swarm如何在指定的node上運行指定的容器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07

