<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Docker實操:安裝MySQL5.7詳解

      介紹

      Docker 中文網址: https://www.dockerdocs.cn

      Docker Hub官方網址:https://hub.docker.com

      Docker Hub中MySQL介紹:https://hub.docker.com/_/mysql

      image

      image

       

      image

      準備

      先創建3個目錄,創建MySQL容器時會掛載容器的卷(Volume),用于Docker和宿主機(Centos)之間文件共享,包括配置文件、數據文件和日志文件。

      什么是卷(Volume)?命令 docker -v 中的“-v”就是這個卷,“-v”只是“--volume”的簡寫。

      客官請留步,多少的看一下!!!

      Docker官方文檔解釋卷的含義:https://docs.docker.com/storage/volumes/

      由于本人的英文水平非常的一般,所有我看的中文文檔:https://www.dockerdocs.cn/storage/volumes/

      image

      下面這個操作可以不用,因為下面會有整合完整的使用命令!!!

      使用 -p 創建多級目錄,即 mydata 目錄下創建 mysql 目錄, mysql 目錄下又創建 log 、data 、conf 三個目錄:

      mkdir -p /mydata/mysql/log
      mkdir -p /mydata/mysql/data
      mkdir -p /mydata/mysql/conf

          sudo chmod -R 777 /mydata

      安裝

      • 拉取MySQL指定版本的鏡像
      • 運行容器
      sudo docker run -p 53306:3306 --name mysql \
      -v /mydata/mysql/log:/var/log/mysql \
      -v /mydata/mysql/data:/var/lib/mysql \
      -v /mydata/mysql/conf:/etc/mysql \
      --restart=always \
      -e MYSQL_ROOT_PASSWORD=Aa123098@\
      -d mysql:5.7

      這個 Docker 命令是用于啟動 MySQL 5.7 容器的,讓我們解釋其中的各個部分:

      docker run:這是 Docker 啟動容器的命令。
      -p 53306:3306:這部分命令將主機的端口 53306 映射到容器內的 3306 端口。這樣,您可以通過主機的 3306 端口來訪問容器內運行的 MySQL 服務。
      --name mysql:通過此選項,您為容器指定了一個名稱,即 mysql。這使得容器更容易識別和管理。
      -v /mydata/mysql/log:/var/log/mysql:這是一個數據卷掛載操作,將主機上的 /mydata/mysql/log 目錄掛載到容器內的 /var/log/mysql 目錄。這樣,MySQL 日志文件將在主機上存儲,以供查看。
      -v /mydata/mysql/data:/var/lib/mysql:同樣,這是另一個數據卷掛載操作,將主機上的 /mydata/mysql/data 目錄掛載到容器內的 /var/lib/mysql 目錄。這用于將 MySQL 數據文件保存在主機上,以便數據持久化。
      -v /mydata/mysql/conf:/etc/mysql:此掛載操作將主機上的 /mydata/mysql/conf 目錄掛載到容器內的 /etc/mysql 目錄。這樣,您可以提供自定義的 MySQL 配置文件。
      --restart=always:這個選項指示 Docker 在容器退出時自動重新啟動容器。這對于確保 MySQL 服務一直可用非常有用。
      -e MYSQL_ROOT_PASSWORD=123456:這個選項設置 MySQL 根用戶的密碼。在示例中,密碼被設置為 123456
      -d:這個選項使容器在后臺運行,以允許您繼續在終端中執行其他命令。
      mysql:5.7:這是要運行的 Docker 鏡像的名稱和標簽。在此示例中,使用 MySQL 5.7 鏡像。

      這個命令將啟動一個 MySQL 5.7 容器,將 MySQL 數據、日志和配置文件掛載到主機上的目錄中,設置 MySQL 根密碼,并允許容器在后臺運行,以及在容器退出時自動重新啟動。這是一個典型的用例,用于在 Docker 中運行 MySQL 數據庫容器。

      宿主機新建配置文件

      在宿主機,宿主機,宿主機上新建!!!

      自定義的 my.cnf 配置文件。 注意!!!/mydata/mysql/conf/ 目錄下創建自定義的 my.cnf 配置文件。文件名隨意,文件格式必須為 .cnf

      vi /mydata/mysql/conf/my.cnf

      添加容器運行的配置參數。使用的是utf8mb4編碼而不是 utf8 編碼

      [client]default-character-set=utf8mb4
      
      [mysql]default-character-set=utf8mb4
      
      [mysqld]
      init_connect="SET collation_connection = utf8mb4_unicode_ci"
      init_connect="SET NAMES utf8mb4"
      character-set-server=utf8mb4
      collation-server=utf8mb4_unicode_ci
      skip-character-set-client-handshake
      skip-name-resolve

      保存后,已經創建了一個名為 /mydata/mysql/conf/my.cnf 的 MySQL 配置文件。這個文件包含了一些 MySQL 的配置選項,用于配置 MySQL 服務器的字符集和排序規則等設置。讓我解釋一下這個配置文件的內容:

      • [client] 部分包含了 MySQL 客戶端的配置,確保客戶端使用 UTF-8 字符集。
      • [mysql] 部分也配置了 MySQL 客戶端的默認字符集。
      • [mysqld] 部分包含了 MySQL 服務器的配置選項,用于配置 MySQL 服務器的行為。

      以下是這個配置文件的各個配置選項的解釋:

      default-character-set=utf8mb4default-character-set=utf8mb4:這兩個選項在 [client][mysql] 部分都設置了默認字符集為 UTF-8,確保客戶端和服務器使用相同的字符集。
      init_connect='SET collation_connection = utf8mb4_unicode_ci'init_connect='SET NAMES utf8mb4':這些選項在 [mysqld] 部分設置了初始化連接時執行的 SQL 語句。這些語句設置了連接的字符集和排序規則為 UTF-8 和 utf8mb4_unicode_ci
      character-set-server=utf8mb4:這個選項設置了 MySQL 服務器的字符集為 UTF-8。
      collation-server=utf8mb4_unicode_ci:這個選項設置了 MySQL 服務器的排序規則為 utf8mb4_unicode_ci,通常用于支持國際化和多語言字符的正確排序。
      skip-character-set-client-handshake:這個選項用于禁用客戶端字符集握手,允許客戶端和服務器之間的字符集設置更加靈活。
      skip-name-resolve:這個選項禁用了主機名解析,以提高連接性能。

      它適用于確保 MySQL 以正確的字符集和排序規則處理數據。確保將這個配置文件用于啟動 MySQL 服務器,可以通過 -v 選項將配置文件掛載到容器內。例如:

      docker run -d -p 3306:3306 --name mysql \
      -v /mydata/mysql/log:/var/log/mysql \
      -v /mydata/mysql/data:/var/lib/mysql \
      -v /mydata/mysql/conf:/etc/mysql \
      --restart=always \
      -e MYSQL_ROOT_PASSWORD=123xxx \
      -d mysql:5.7

      將在容器內使用自定義配置文件 /mydata/mysql/conf/my.cnf 來啟動 MySQL 服務器。

      進入容器

      docker exec -it mysql bash
      • 可以使用外部工具連接測試
      mysql -h 主機IP地址 -P 3306 -u root -p

      退出MySQL服務

      退出容器

      添加配置

      • 修改容器中的MySQL時間不同步的問題
      • 修改容器中的MySQL分組only_full_group_by問題
      • 修改表名不區分大小寫問題

      在MySQL配置文件(通常是my.cnf)中,確保已正確配置時區。您可以在配置文件中添加以下內容:

      [mysqld]
      default_time_zone = '+8:00'
      sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
      lower_case_table_names=1

      這是一個 MySQL 配置文件(my.cnfmy.ini)中的一部分,用于設置數據庫的默認時區、SQL 模式和其他選項。以下是這些選項的詳細解釋:

      default_time_zone = '+8:00':設置數據庫的默認時區為 UTC+8。這意味著在執行與日期和時間相關的操作時,數據庫將根據這個時區進行轉換。
      sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION:設置 SQL 模式,以便更嚴格地遵循 SQL 標準。這有助于避免潛在的數據問題和錯誤。具體來說,這些模式包括:
      STRICT_TRANS_TABLES:禁止在嚴格模式下插入無效日期和數據。
      NO_ZERO_IN_DATE:禁止使用零日期(如 '0000-00-00')。
      NO_ZERO_DATE:禁止使用零日期(如 '0000-00-00')。
      ERROR_FOR_DIVISION_BY_ZERO:將除以零的操作視為錯誤,而不是警告。
      NO_AUTO_CREATE_USER:禁止自動創建用戶。
      NO_ENGINE_SUBSTITUTION:如果請求的存儲引擎不可用,禁止自動使用替代存儲引擎。
      lower_case_table_names = 1:將所有表名存儲為小寫。這有助于避免因大小寫不同而導致的表名混淆和錯誤。在某些操作系統(如 Windows 和 macOS)上,這個選項可能對大小寫不敏感,而在其他操作系統(如 Linux)上可能對大小寫敏感。設置為 1 表示啟用該功能,0 表示禁用。

      重啟服務/容器

      修改密碼

      進入容器

      docker exec -it mysql bash

      登錄MySQL

      修改密碼

      # 修改普通用戶,只改一個就好 
      SET PASSWORD FOR 'youruser' = PASSWORD('xxxxxxxx');# 修改root用戶,改兩個 
      SET PASSWORD FOR 'root' = PASSWORD('xxxxxxxxx'); 
      SET PASSWORD FOR 'root'@'localhost'=PASSWORD('xxxxxxxxx');

      注意,注意,注意!!!到此為止,docker下的MySQL服務已經可用了,下面是一些細化操作。


      禁用 root 賬戶被外部工具連接

      進入到容器里,連接mysql,刪除mysql數據庫user表中 user=“root”,host="%"的那條記錄。因為這條數據會允許 root 賬戶被允許外部工具(如Navicat或SQLyog)連接,實際上,應該禁止這么做,正確做法是只允許 root 賬戶本地連接。如果想 root 賬戶繼續被外部工具連接,那就把root密碼設置得更復雜,過于簡單不安全!

      切換到 mysql 數據庫,并查看 user 表。

      select user,host from user;

      刪除mysql數據庫user表中 user=“root”,host="%"的那條記錄,并刷新權限。

      可以這么做,但是不建議這么干,改個復雜的密碼,不暴露給其他使用者就好了!!!

      可以這么做,但是不建議這么干,改個復雜的密碼,不暴露給其他使用者就好了!!!

      可以這么做,但是不建議這么干,改個復雜的密碼,不暴露給其他使用者就好了!!!

      delete user from mysql.user where user='root' and host='%';

      創建新賬戶供外部工具連接

      使用 CREATE 創建賬戶,例如對應mysql.user表中,字段user為 goboy,字段host為 % ,賬號密碼為 123456 ,“%”代表任何主機。使用 GRANT 授予賬戶特定權限。

      創建用戶和密碼

      CREATE USER 'goboy'@'%' IDENTIFIED BY '123456';

      授予賬戶特定權限。ALL 和 ALL PRIVILEGES 是一樣的,可簡寫為 ALL 。

      GRANT ALL ON *.* TO 'goboy'@'%' WITH GRANT OPTION;

      刷新賬號權限。

      新用戶登錄測試

      容器基礎操作

      啟動容器

      docker start mysql
      或
      docker start 容器ID

      停止容器

      docker stop mysql
      或
      docker stop 容器ID

      刪除容器

      docker rm mysql
      或
      docker rm 容器ID

      重啟容器

      docker restart mysql
      或
      docker restart 容器ID

      查看狀態

      查看所有容器的運行狀態,包括運行的和停止的

      查看所有運行中的容器的狀態,不包括停止的

      我正在參與2023騰訊技術創作特訓營第三期有獎征文,組隊打卡瓜分大獎!

      MySQL的conf.d和conf文件都是用于配置MySQL服務的重要文件,但它們在配置管理和使用上有所不同。以下是它們之間的主要區別:

      conf.d文件的作用

      自定義配置文件:conf.d目錄下的文件主要用于存放自定義的MySQL配置,例如,如果您想要添加或修改某些服務端或客戶端的配置,可以在這個目錄下創建相應的.cnf文件。

      合并配置:MySQL會讀取conf.d目錄下的所有.cnf文件,并將它們合并為一個配置。這意味著,如果您在conf.d目錄下創建了新的my.cnf文件,MySQL會將其讀取并合并到配置中,但不會覆蓋/etc/my.cnf文件。

      conf文件的作用

      默認配置文件:conf文件通常是MySQL的默認配置文件,它包含了MySQL的基本配置信息。這個文件通常位于/etc/mysql/mysql.cnf或/etc/my.cnf,具體取決于您的操作系統和MySQL版本。

      服務啟動和運行的基礎:conf文件是MySQL服務啟動和運行的基礎,它包含了服務所需的基本配置,如數據庫目錄、日志文件位置等。

      posted @ 2025-11-05 16:21  麥麥提敏  閱讀(18)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 一亚洲一区二区中文字幕 | 久久日产一线二线三线| 日本久久一区二区免高清| 欧美经典人人爽人人爽人人片 | 亚洲av色图一区二区三区| 人妻有码中文字幕在线| 久女女热精品视频在线观看| JIZZJIZZ国产| 免费国产黄线在线观看| 新干县| 最新精品国产自偷在自线| 久热久热免费在线观视频| 国产成人精品无人区一区| 国产精品无码免费播放| 精品国产一区二区三区蜜臀| 亚洲国产欧美在线人成大黄瓜| 欧美国产日韩久久mv| 国产极品粉嫩学生一线天| 亚洲中文字幕无码专区| 国产精品久久中文字幕| 国产精品爽爽久久久久久竹菊| 97国产精品人人爽人人做| 久久99热只有频精品8| 国产精品一线天在线播放| 最新亚洲人成网站在线影院| 中文乱码人妻系列一区二区| 国产精品美女一区二三区| 国产AV影片麻豆精品传媒| 衡阳市| 久热这里只有精品12| 久热综合在线亚洲精品| 巴彦淖尔市| 国产免费视频一区二区| 欧美区一区二区三区| 欧美变态另类zozo| 97色成人综合网站| 天天夜碰日日摸日日澡性色av| 精品久久久久久无码不卡| 中文字幕人妻中出制服诱惑| 欧美一区二区三区欧美日韩亚洲| 男人的天堂av一二三区|