1. 程式人生 > 其它 >Docker安裝MySQL8

Docker安裝MySQL8

Docker安裝MySQL8.0

原文連結: https://www.cnblogs.com/ybyn/p/13698058.html

1、環境

  • CentOS 7.5
  • Docker 20.10.5
  • MySQL 8.0.27

2、安裝

1、拉取映象

預設拉取最新版本的映象

docker pull mysql

如果要指定版本,使用下面的命令

docker pull mysql:8.0.27

2、建立資料目錄和配置檔案

在宿主機建立放置mysql的配置檔案的目錄和資料目錄,並且進行授權

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

chmod -R 755 /usr/mysql/

3、建立配置檔案

在上面建立的配置檔案目錄/usr/mysql/conf下建立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/

4、啟動建立容器

docker run  -d --name mysql8 -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=密碼 mysql:8.0.27

引數解釋:
-v : 掛載宿主機目錄和 docker容器中的目錄,前面是宿主機目錄,後面是容器內部目錄

-d : 後臺執行容器

-p 對映 宿主機埠號:容器埠號

-e 環境引數,MYSQL_ROOT_PASSWORD設定root使用者的密碼

執行上述命令後,執行查詢容器的命令就可以看到建立的mysql容器

docker ps -a

3、問題

上述雖然安裝好了mysql,但是使用遠端的Navicat連線時提示錯誤,不能正確連線mysql,此時需要修改按照下面說的步驟修改一下mysql的密碼模式以及主機等內容才可以。

1、修改mysql密碼以及可訪問主機

  • 進入容器內部
docker exec -it mysql /bin/bash
  • 連線mysql
mysql -uroot -p
  • 使用mysql庫
mysql> use mysql
  • 修改訪問主機以及密碼等,設定為所有主機可訪問
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密碼';

注意:

mysql_native_password,mysql8.x版本必須使用這種模式,否則navicate無法正確連線

  • 重新整理
mysql> flush privileges

經過以上步驟,再次遠端使用Navicat連線資料庫時就可以正常連線了。