Docker安裝MySql遇到的問(wèn)題解決
一、mysql查詢中文亂碼問(wèn)題
由于字符集設(shè)置不正確導(dǎo)致。
解決方案:
1. 進(jìn)入mysql中進(jìn)行查看數(shù)據(jù)庫(kù)字符集
show variables like 'character%';
character_set_client character_set_connection | 連接到 MySQL 服務(wù)器的客戶端使用的字符集 |
character_set_database | 當(dāng)前數(shù)據(jù)庫(kù)的默認(rèn)字符集 |
character_set_results | 查詢結(jié)果返回給客戶端時(shí)使用的字符集 |
character_set_server | MySQL 服務(wù)器使用的默認(rèn)字符集 |
返回的字符集中,character_set_database
、character_set_server
等都為latin1
字符集,所以會(huì)出現(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. 測(cè)試結(jié)果
二、主從同步中遇到的問(wèn)題
在同步測(cè)試過(guò)程中發(fā)現(xiàn)從機(jī)并沒(méi)有同步主機(jī)的數(shù)據(jù),并且查看從機(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. 確定宿主機(jī)防火墻開(kāi)放mysql的映射端口
如果不是生產(chǎn)環(huán)境,可以直接簡(jiǎn)單粗暴先暫時(shí)關(guān)閉防火墻進(jìn)行排錯(cuò)。
# 查看防火墻狀態(tài) systemctl status firewalld # 暫時(shí)關(guān)閉防火墻 systemctl stop firewalld # 永久關(guān)閉防火墻 systemctl disable firewalld
2. 檢查配置文件中 server_id 是否唯一
如果修改了配置文件需要重啟容器使得生效,
docker restart mysql-master
ps:主機(jī)和從機(jī)都查看一遍
3. 檢查的同步狀態(tài)
3.1 查看主服務(wù)器當(dāng)前的二進(jìn)制日志狀態(tài)
show master status;
3.2 進(jìn)入從機(jī)中設(shè)置同步配置
如果已經(jīng)啟動(dòng)和同步,需要先關(guān)閉同步
stop slave;
-- 格式: -- change master to master_host='宿主機(jī)ip',master_user='主數(shù)據(jù)庫(kù)配置的主從復(fù)制用戶名',master_password='主數(shù)據(jù)庫(kù)配置的主從復(fù)制用戶密碼',master_port=宿主機(jī)主數(shù)據(jù)庫(kù)端口,master_log_file='主數(shù)據(jù)庫(kù)主從同步狀態(tài)的文件名File',master_log_pos=主數(shù)據(jù)庫(kù)主從同步狀態(tài)的Position,master_connect_retry=連接失敗重試時(shí)間間隔(秒); 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;
-- 配置完成后在進(jìn)行啟動(dòng)同步 start slave;
ps:根據(jù)主機(jī)配置進(jìn)行設(shè)置。
最后查看主機(jī)中的主從復(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)身份驗(yàn)證插件 caching_sha2_password
,而一些舊的MySQL客戶端或庫(kù)可能不支持這個(gè)插件,導(dǎo)致連接問(wèn)題。解決方案 ↓↓↓ ↓↓↓
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遇到的問(wèn)題解決的文章就介紹到這了,更多相關(guān)Docker安裝MySql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker拉取MySQL8.0鏡像以及安裝的完整步驟
- docker安裝及運(yùn)行MySQL5.7容器完整腳本及說(shuō)明
- Docker desktop安裝mysql過(guò)程
- docker安裝mysql并實(shí)現(xiàn)數(shù)據(jù)卷掛載的示例代碼
- linux和docker下mysql安裝方式
- docker上安裝和卸載MySQL數(shù)據(jù)庫(kù)詳細(xì)圖文教程
- Docker安裝MySQL鏡像實(shí)戰(zhàn)分享
- Docker安裝mysql主從復(fù)制的實(shí)現(xiàn)步驟
- Docker安裝mysql9.1.0的實(shí)現(xiàn)
相關(guān)文章
Docker創(chuàng)建MongoDB容器并添加root密碼驗(yàn)證與更多用戶詳細(xì)步驟
MongoDB是一個(gè)著名的面向文檔的數(shù)據(jù)庫(kù),被許多現(xiàn)代Web應(yīng)用程序使用,下面這篇文章主要給大家介紹了關(guān)于Docker創(chuàng)建MongoDB容器并添加root密碼驗(yàn)證與更多用戶的相關(guān)資料,需要的朋友可以參考下2023-01-01Docker單機(jī)部署Doris超詳細(xì)圖文教程
Apache?Doris是一款基于MPP架構(gòu)的分析型數(shù)據(jù)庫(kù),由百度大數(shù)據(jù)部研發(fā),支持亞秒級(jí)響應(yīng)時(shí)間的實(shí)時(shí)數(shù)據(jù)分析,本文旨在為學(xué)習(xí)Doris的同學(xué)提供一個(gè)快速的操作指引,以便更高效地挖掘數(shù)據(jù)背后的價(jià)值,對(duì)docker?部署Doris?數(shù)據(jù)庫(kù)使用感興趣的朋友跟隨小編一起看看吧2024-09-09Docker的基本概念、安裝步驟以及一些簡(jiǎn)單的用法
Docker 是一種開(kāi)源的容器化平臺(tái),允許開(kāi)發(fā)者打包應(yīng)用及其依賴(lài)項(xiàng)到一個(gè)可移植的容器中,容器可以在任何支持Docker的環(huán)境中運(yùn)行,這使得應(yīng)用的部署和管理變得更加簡(jiǎn)單和高效,本文介紹Docker的基本概念、安裝步驟以及一些簡(jiǎn)單的用法,感興趣的朋友一起看看吧2024-11-11修改Docker鏡像倉(cāng)庫(kù)為阿里云鏡像或163鏡像的實(shí)現(xiàn)
docker本身的倉(cāng)庫(kù)非常慢,但是國(guó)內(nèi)有阿里云的鏡像倉(cāng)庫(kù)非???本文主要介紹了修改Docker鏡像倉(cāng)庫(kù)為阿里云鏡像或163鏡像的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11docker搭建redis三主三從集群的實(shí)現(xiàn)步驟
本文主要介紹了docker搭建redis三主三從集群,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08阿里云CentOS 6.5 安裝Docker詳細(xì)步驟
這篇文章主要介紹了阿里云CentOS 6.5 安裝Docker的相關(guān)資料,現(xiàn)在都是云時(shí)代和大數(shù)據(jù)時(shí)代,希望大家也能跟著時(shí)代的步伐,需要的朋友可以參考下2016-10-10Linux搭建Docker環(huán)境的詳細(xì)過(guò)程(最新推薦)
Docker從17.03版本之后分為CE(Community Edition: 社區(qū)版)和EE(Enterprise Edition: 企業(yè)版),相對(duì)于社區(qū)版本,企業(yè)版本強(qiáng)調(diào)安全性,但需付費(fèi)使用,這里我們使用社區(qū)版本即可,這篇文章給大家介紹Linux搭建Docker環(huán)境的詳細(xì)過(guò)程,感興趣的朋友一起看看吧2025-04-04Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目詳解
bridge模式是Docker默認(rèn)的網(wǎng)絡(luò)設(shè)置,此模式會(huì)為每一個(gè)容器分配N(xiāo)etwork Namespace、設(shè)置IP等,并將一個(gè)主機(jī)上的Docker容器連接到一個(gè)虛擬網(wǎng)橋上,下面這篇文章主要給大家介紹了關(guān)于Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-01-01Docker構(gòu)建Java鏡像并部署Java項(xiàng)目的完整步驟
這篇文章主要給大家介紹了關(guān)于Docker構(gòu)建Java鏡像并部署Java項(xiàng)目的完整步驟,Docker是一種容器化技術(shù),可以幫助開(kāi)發(fā)者輕松打包應(yīng)用程序和依賴(lài)項(xiàng),并在任何地方運(yùn)行它們,需要的朋友可以參考下2023-10-10