Docker 安裝 MySQL

docker-install-mysql.jpg

本篇將介紹如何使用 Docker 部署 MySQL 數據庫及遠程訪問配置html

安裝 MySQL

拉取鏡像

使用下面的命令拉取 MySQL 數據庫的鏡像:mysql

$ sudo docker pull mysql  # 拉取最新版本的鏡像,當前爲 MySQL 8 版本,tag 爲 latest

$ sudo docker pull mysql:5.7 # 指定拉取 MySQL 5.7 版本

也可使用搜索命令,查找其餘的 MySQL 相關鏡像,其中有標識 Stars 數,即受歡迎程度。sql

$ sudo docker search mysql

運行 MySQL

$ sudo docker run -p 3306:3306 \
    --name mysql \
    -v $PWD/conf:/etc/mysql/conf.d \
    -v $PWD/logs:/logs \
    -v $PWD/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=your-password \
    -d mysql

命令說明:docker

  • -p 3306:3306 :將容器的 3306 端口映射到主機的 3306 端口。
  • -v $PWD/conf:/etc/mysql/conf.d :將主機當前目錄下的 conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf。
  • -v $PWD/logs:/logs :將主機當前目錄下的 logs 目錄掛載到容器的 /logs。
  • -v $PWD/data:/var/lib/mysql :將主機當前目錄下的data目錄掛載到容器的 /var/lib/mysql 。
  • -e MYSQL_ROOT_PASSWORD=your-password :初始化 root 用戶的密碼,建議使用複雜度高的密碼。
  • -d mysql : 要部署的鏡像名,若是是5.7版本的話,這裏則爲mysql:5.7

配置遠程訪問

遠程訪問 MySQL 屬於基本配置,可是在配置的時候要注意安全性問題,不然將存在安全性隱患,尤爲是企業用服務器更要注重安全性。數據庫

而且須要注意服務器防火牆要開啓 3306 端口,服務器提供商的安全組中也須要開啓,不然會沒法訪問哦。安全

要配置遠程訪問,先要打開 MySQL 的控制終端,使用下面的命令開啓:bash

$ sudo docker exec -it mysql bash # 進入 MySQL 容器

$ mysql -uroot -p # 登陸 MySQL,執行後輸入密碼進入 MySQL

$ use mysql; # 選擇使用 mysql 數據庫

MySQL 8 配置

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
# 建立一個帳號,用來進行遠程訪問;
# {usernama} 是遠程訪問登陸的用戶名,不建議用 root;
# {password} 是遠程訪問的登陸密碼;
# '%'表明的是全部IP,若是能夠儘可能設置指定 IP 或 IP 段

GRANT ALL ON *.* TO 'username'@'%';
# 賦予全部權限給以前建立的帳號

ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
# 確認使用這裏的密碼登陸此帳號

FLUSH PRIVILEGES;
# 刷新權限

完整命令以下所示:服務器

CREATE USER 'james'@'%' IDENTIFIED BY '123456asd';
# 建立一個帳號-james,用來進行遠程訪問;

GRANT ALL ON *.* TO 'james'@'%';
# 賦予全部權限給以前建立的帳號:james

ALTER USER 'james'@'%' IDENTIFIED WITH mysql_native_password BY '123456asd';
# 確認使用密碼{123456asd}登陸此帳號{james}
# 密碼儘可能複雜,安全性更高。

FLUSH PRIVILEGES;
# 刷新權限

配置完畢後,使用 Navicat 工具或其餘工具進行鏈接測試便可。工具

MySQL 5.7 配置

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
# {usernama} 是遠程訪問登陸的用戶名,不建議用 root;
# {password} 是遠程訪問的登陸密碼;
# '%'表明的是全部IP,若是能夠儘可能設置指定 IP 或 IP 段

FLUSH PRIVILEGES;
# 刷新權限

配置完畢後,使用 Navicat 工具或其餘工具進行鏈接測試便可。測試

注:若是沒法訪問請注意防火牆 3306 端口是否開啓,服務器提供商的安全組中的端口是否開啓。

更多技術文章歡迎關注個人博客主頁:http://JemGeek.com

點擊閱讀原文

相關文章
相關標籤/搜索