国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker安裝mysql&&使用Navicat遠(yuǎn)程連接mysql容器&&mysql容器的持久化測試

這篇具有很好參考價(jià)值的文章主要介紹了Docker安裝mysql&&使用Navicat遠(yuǎn)程連接mysql容器&&mysql容器的持久化測試。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

文章主人公:帥哥BUG???

文章路人: 路人???? 路人???

目錄

一.安裝mysql并配置文件

1.下載相關(guān)鏡像

2.在宿主機(jī)中創(chuàng)建相關(guān)目錄,用于掛載容器的相關(guān)數(shù)據(jù)

3.conf目錄

4.data目錄(創(chuàng)建mysql5.7容器)

二.使用Navicat遠(yuǎn)程連接mysql容器

1.ip addr 獲取ip

2.點(diǎn)擊連接選擇MySql

3.輸入ip,密碼123456

4.點(diǎn)擊測試一下連接

三.mysql容器的持久化測試

1.新建一個(gè)數(shù)據(jù)庫

?2.刪除移除mysql容器

3.再次創(chuàng)建mysql容器


一.安裝mysql并配置文件

1.下載相關(guān)鏡像

docker pull mysql/mysql-server:5.7

注:指令解釋

mysql/mysql-serve:鏡像的倉庫名稱和鏡像名稱

?后面的mysql標(biāo)簽是版本號,可選擇,有:5.5/5.6/5.7/8.0

常見的mysql的版本是5.幾和 8.幾的

2.在宿主機(jī)中創(chuàng)建相關(guān)目錄,用于掛載容器的相關(guān)數(shù)據(jù)

??:為什么要掛載容器的相關(guān)數(shù)據(jù)???

??:容器里面是不能存放重要文件的,如果容器被刪除,容器里的數(shù)據(jù)將不復(fù)存在,

假設(shè)1:容器掛載了一個(gè)宿主機(jī)目錄,容器和宿主機(jī)的目錄是同步的,那么數(shù)據(jù)也是同步的,就算我們不小心刪除了容器,沒事!,創(chuàng)建一個(gè)容器再次掛載之前的宿主機(jī)目錄,容器好是有之前的數(shù)據(jù)

假設(shè)2:容器是基于鏡像創(chuàng)建的,那么好,下方圖中是兩種基礎(chǔ)鏡像,

容器a是基于apline創(chuàng)建的

容器b是基于centos創(chuàng)建的

要執(zhí)行 vi 或 vim 編輯文件的時(shí)候

容器b有較完整的系統(tǒng)可以編輯文件,

但是容器a不能編輯文件,

因?yàn)楦鶕?jù)alpine鏡像創(chuàng)建的容器系統(tǒng)是不完整的,還要自己去下載,

但是我們可以讓容器a掛載宿主機(jī)目錄,我們在宿主機(jī)目錄或者文件夾當(dāng)放上配置文件或指令

在容器創(chuàng)建的時(shí)候掛載宿主機(jī)目錄,就算在容器基于鏡像alpine創(chuàng)建之后里面的指令不完善,但是由于容器掛載了宿主機(jī)目錄,還是可以正常執(zhí)行指令的,

??:我不能直接配置文件或著指令下載到容器里面嗎?

??:可以,但是如果你再次創(chuàng)建容器的時(shí)候,這些配置文件和和指令還要重新下載,但是我們在宿主機(jī)目錄或者文件夾當(dāng)放上配置文件或指令,容器再次創(chuàng)建的時(shí)候去掛載宿主機(jī)目錄就可以了,不用去重復(fù)的操作,

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維
?創(chuàng)建目錄專門用來放mysql的數(shù)據(jù),給容器掛載

mkdir -p /data/mysql/{conf,data}

注:指令解釋

mkdir:新建文件夾的意思

-p 多級創(chuàng)建? 就算沒有data文件夾或者mysql,也會(huì)幫你自動(dòng)創(chuàng)建

{conf,data}:在mysql目錄下創(chuàng)建兩個(gè)文件

cd 進(jìn)入? ? ll 查看?

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

3.conf目錄

必須提前上傳my.cnf文件到/data/conf目錄 并且它與window中的配置文件my.ini后綴名是不一樣

?my.cnf是配置文件里面內(nèi)容如下:

[client]
default-character-set=utf8
?
[mysql]
default-character-set=utf8
?
[mysqld]
##官方的配置
skip-host-cache
skip-name-resolve

#datadir=/var/lib/mysql?。。。。。。。。∵@是容器當(dāng)中mysql的存儲位置
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


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
# default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# modeified:?
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password

我用的是連接工具 可以直接復(fù)制進(jìn)去 , 你們可以用rz上傳,顯示沒有rz命令可以去網(wǎng)上找選擇方法

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

4.data目錄(創(chuàng)建mysql5.7容器)

數(shù)據(jù)保存到宿主機(jī)中,下次需要的時(shí)候重啟容器,原有數(shù)據(jù)都能被加載,不會(huì)丟失數(shù)據(jù)?

? 創(chuàng)建mysql5.7容器

docker run -p 3306:3306\
?--name mysql \
?-v /data/mysql/conf/my.cnf:/etc/my.cnf \
?-v /data/mysql/data:/var/lib/mysql \
?--privileged=true \
?--restart=always \
?-e MYSQL_ROOT_PASSWORD=123456 \
?-d mysql/mysql-server:5.7

指令解釋:

\ :是換行的意思

run:創(chuàng)建并運(yùn)行

ip:用宿主機(jī)的3306映射容器的3306

--name:給容器取名字

-v:是進(jìn)行目錄掛載??

-v /data/mysql/conf/my.cnf:/etc/my.cnf? ??意思是把宿主機(jī)的my.cnf掛載到容器的myc.nf,容器沒有這個(gè)文件會(huì)自動(dòng)創(chuàng)建

-v /data/mysql/data:/var/lib/mysql? ?把宿主機(jī)的data文件夾和容器的數(shù)據(jù)存儲位置掛載到一起,/var/lib/mysql 這個(gè)目錄要和my.cnf配置的路徑一樣哦

--privileged=true:讓里面的用戶有權(quán)限。使用該參數(shù),container內(nèi)的root擁有真正的root權(quán)限,?否則,container內(nèi)的root只是外部的一個(gè)普通用戶權(quán)限

--restart=always:可以不用這個(gè)指令

表示當(dāng)前是否進(jìn)行重啟,一直重啟或者總是重啟

容器自動(dòng)啟動(dòng)參數(shù),其值可以為[no,on-failure,always]
? ? ? ? ? ? ? ? ? ? ? no為默認(rèn)值,表示容器退出時(shí),docker不自動(dòng)重啟容器
? ? ? ? ? ? ? ? ? ? ? on-failure表示,若容器的退出狀態(tài)非0,則docker自動(dòng)重啟容器,
? ? ? ? ? ? ? ? ? ? ? 還可以指定重啟次數(shù),若超過指定次數(shù)未能啟動(dòng)容器則放棄
? ? ? ? ? ? ? ? ? ? ? always表示,只要容器退出,則docker將自動(dòng)重啟容器

?-e MYSQL_ROOT_PASSWORD=123456:設(shè)置root的密碼
-d mysql/mysql-server:5.7:后臺啟動(dòng)模式及使用的鏡像 ?

?我們在創(chuàng)建完容器之后 cd 進(jìn)入data ll 查看 ,可以看到生成了很多文件,這是msql自動(dòng)給你放進(jìn)來的

5.進(jìn)入容器mysql

docker exec -it mysql bash

6.登錄mysql

mysql -uroot -p? ?密碼:123456

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

?7.修改mysql允許Navicat遠(yuǎn)程連接

(1).查看四個(gè)庫

show databases;

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

msql這個(gè)庫是比較重要的 是跟用戶相關(guān)的數(shù)據(jù)

(2).使用mysql庫

use mysql;

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

(3).查看用戶表所有信息

select * from user;

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

?(4).查看用戶表user中的字段user和host所有信息

select user,host from user;

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

?可以看到有一個(gè)root用戶,其他三個(gè)是不能用的,可以自己去新建一個(gè),我們主要看root后面的host,host表示當(dāng)前能夠登錄的主機(jī),localhost表是本地進(jìn)行登錄,如果你希望root在任何地方都能進(jìn)行遠(yuǎn)程登錄可以改成%,如果希望太某個(gè)ip登錄可以,那你可以把這個(gè)IP給它寫死

??(5).給用戶授權(quán)

?grant all privileges on *.* to root@'%' identified by '123456';?

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

我們把root主機(jī)改成%好號之后就意味著,這個(gè)用戶可以遠(yuǎn)程登錄了

在使用select user,host from user;?查看字段信息 root 的主機(jī)變成%了

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

??(5).把權(quán)限重新更新

?flush privileges;

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

?更新權(quán)限后,外部就可以使用native進(jìn)行連接了

二.使用Navicat遠(yuǎn)程連接mysql容器

連接軟件有很多,我用的是Navicat

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

1.ip addr 獲取ip

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

2.點(diǎn)擊連接選擇MySql

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

3.輸入ip,密碼123456

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

4.點(diǎn)擊測試一下連接

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

歐克 ,連接到了?,我們現(xiàn)在持久化測試一下看看

三.mysql容器的持久化測試

1.新建一個(gè)數(shù)據(jù)庫

在數(shù)據(jù)庫里面創(chuàng)建一個(gè)表aa編寫兩個(gè)字段id和name?

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

?錄入一點(diǎn)數(shù)據(jù)

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

?2.刪除移除mysql容器(測試一下數(shù)據(jù)是否會(huì)消失)

直接刪除移除mysql容器,在重新創(chuàng)建

docker rm -f mysql?

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

刪除之后我們在去Navicat刷新一下,發(fā)現(xiàn)出bug了,如果按照以前的方式去使用容器,容器一刪除,數(shù)據(jù)就會(huì)消失不見了,

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

3.再次創(chuàng)建mysql容器

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

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

?創(chuàng)建之后我們在去Navicat刷新一下,又有數(shù)據(jù)了,就意味著我們就算把容器給刪除了,數(shù)據(jù)也不會(huì)丟失,再次創(chuàng)建的時(shí)候還有數(shù)據(jù)

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

數(shù)據(jù)還在的原理是,我們所有的MySQL數(shù)據(jù)都沒有放在人里面,而是放在了temp文件里?

我們cd 進(jìn)入?/data/mysql/data 使用 ll 查看可以發(fā)現(xiàn) temp 文件 數(shù)據(jù)都在temp里面

容器因?yàn)閽燧d了宿主機(jī)目錄!只要宿主機(jī)的數(shù)據(jù)還在,那不管容器在怎么刪除,也不會(huì)丟失數(shù)據(jù),

?我們可以備份一下temp文件

mysqldump -uroot -p123456 temp > a.sql

mysqldump:備份

-uroot -p123456:登錄mysql 密碼是123456?

temp:要備份的文件

a.sql:備份到a.sql里面

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

ls 查看一下 ,可以看到有這個(gè)備份文件了,但是不行,因?yàn)楝F(xiàn)在的備份文件在容器里,容器一刪除,備份文件就沒了

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

我們可以在宿主機(jī)專門創(chuàng)建一個(gè)文件夾放備份文件

這個(gè)操作和在Navicat

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維

是一樣的道理


好啦 文章內(nèi)容到這里就結(jié)束了? 你學(xué)到了嗎??

覺得有用的記得關(guān)注點(diǎn)贊加收藏哦? 我的Docker專欄還有其他關(guān)于Dokcer的技術(shù)點(diǎn)哦~

我敲BUG的Docker專欄:http://t.csdn.cn/ypXDz

?navicat連接docker容器,docker,mysql,容器,數(shù)據(jù)庫,運(yùn)維文章來源地址http://www.zghlxwxcb.cn/news/detail-773733.html

到了這里,關(guān)于Docker安裝mysql&&使用Navicat遠(yuǎn)程連接mysql容器&&mysql容器的持久化測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包