docker安裝mysql數(shù)據(jù)庫(kù)

Docker安裝Mysql

前言

本章將使用docker安裝Mysql,前提條件是已經(jīng)安裝完docker并會(huì)使用docker。

如果還沒(méi)有安裝docker,可以參考在CentOS7下安裝Docker

如果還不會(huì)docker,但需要學(xué)習(xí)mongodb相關(guān)的知識(shí),可以參考另一篇博客,那里詳細(xì)講述了如何在Linux上安裝Mysql環(huán)境。

附上博客鏈接博客傳送門(mén)

安裝MySql

在dockerhub上查找鏡像


拉取鏡像

這里我們拉取官網(wǎng)最新8.0鏡像

[root@e2ab0x9jme3furrd ~]# docker pull mysql

查看鏡像

在鏡像列表中我們可以看到剛剛拉取的鏡像

[root@e2ab0x9jme3furrd ~]# docker images

REPOSITORY? ? TAG? ? ? IMAGE ID? ? ? CREATED? ? ? ? SIZE

mysql? ? ? ? latest? ? b05128b000dd? 10 days ago? ? 516MB

hello-world? latest? ? feb5d9fea6a5? 2 months ago? 13.3kB

centos? ? ? ? latest? ? 5d0da3dc9764? 2 months ago? 231MB

創(chuàng)建數(shù)據(jù)目錄和配置文件

在宿主機(jī)創(chuàng)建mysql的配置文件的目錄和數(shù)據(jù)目錄

$ mkdir -p /usr/mysql/conf /usr/mysql/data /usr/mysql/logs

創(chuàng)建配置文件

在配置文件目錄下創(chuàng)建MySQL的配置文件my.cnf

$ vim /usr/mysql/conf/my.cnf

添加配置文件信息

[client]

#socket = /usr/mysql/mysqld.sock

default-character-set = utf8mb4

[mysqld]

#pid-file? ? ? ? = /var/run/mysqld/mysqld.pid

#socket? ? ? ? ? = /var/run/mysqld/mysqld.sock

#datadir? ? ? ? = /var/lib/mysql

#socket = /usr/mysql/mysqld.sock

#pid-file = /usr/mysql/mysqld.pid

datadir = /usr/mysql/data

character_set_server = utf8mb4

collation_server = utf8mb4_bin

secure-file-priv = NULL

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links = 0

# Custom config should go here

!includedir /etc/mysql/conf.d/

創(chuàng)建容器

[root@e2ab0x9jme3furrd ~]# docker run --restart=unless-stopped -d --name mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/logs:/logs -v /usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=lzx1922026241@ mysql

e364ef1e8a4f7fa6f50ac66edfe5d66e7441e0ecc005fa6c43e9f5dc6237ece1

參數(shù)解釋?zhuān)?/p>

-v : 掛載宿主機(jī)目錄和 docker容器中的目錄,前面是宿主機(jī)目錄,后面是容器內(nèi)部目錄

-d : 后臺(tái)運(yùn)行容器

-p 映射容器端口號(hào)和宿主機(jī)端口號(hào)

-e 環(huán)境參數(shù),MYSQL_ROOT_PASSWORD設(shè)置root用戶的密碼

查看容器啟動(dòng)情況

[root@e2ab0x9jme3furrd ~]# docker ps

CONTAINER ID? IMAGE? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NAMES

e364ef1e8a4f? mysql? ? "docker-entrypoint.s…"? About a minute ago? Up About a minute? 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp? mysql01

** 問(wèn)題:雖然已經(jīng)安裝好了mysql,但是無(wú)法使用navicat工具進(jìn)行連接時(shí)報(bào)錯(cuò),即無(wú)法遠(yuǎn)程連接。**

解決問(wèn)題

進(jìn)入容器內(nèi)部

[root@e2ab0x9jme3furrd ~]# docker exec -it mysql01 /bin/bash

連接mysql

root@e364ef1e8a4f:/# mysql -uroot -p

Enter password:

修改訪問(wèn)主機(jī)以及密碼,設(shè)置所有主機(jī)可訪問(wèn)

mysql> use mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql>alter user'root'@'%'identified with mysql_native_password by'123456';Query OK, 0 rows affected (0.01 sec)

刷新權(quán)限

mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)

至此,通過(guò)Docker方式安裝Mysql成功?。?!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容