最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker 部署 Mysql8.0的方法示例

 更新時(shí)間:2020年10月22日 12:42:52   作者:xsj34567  
這篇文章主要介紹了Docker 部署 Mysql8.0的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 參照官網(wǎng),安裝docker 

2.拉取mysql鏡像 (默認(rèn)拉取最新的鏡像)8.0.11

docker pull mysql

3.在宿主機(jī)創(chuàng)建持久化 mysql data 及mysql.cnf 

mkdir /usr/local/mysqlData/test/cnf
mkdir /usr/local/mysqlData/test/data
vi /usr/loal/mysqlData/test/cnf/mysql.cnf

    設(shè)置本地文件共享:

    Docker -> Preferences... -> File Sharing


4.添加操作權(quán)限 

chmod 777 /usr/local/mysqlData/test/data     備注:掛載時(shí)權(quán)限驗(yàn)證(操作權(quán)限)

5.運(yùn)行鏡像,設(shè)置初始密碼、本機(jī)與docker端口的映射與掛載本地?cái)?shù)據(jù)盤 (啟動(dòng)msyql服務(wù))

docker run -itd -p 3307:3306 --name test_mysql -v /usr/local/mysqlData/test/conf:/etc/mysql
 -v /usr/local/mysqlData/test/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

運(yùn)行結(jié)果:


6. 進(jìn)入test_mysql 容器

Docker exec -it test_mysql bash

如圖:

7.在容器內(nèi)登錄mysql


8.查看用戶信息

mysql> select user,host,authentication_string from mysql.user;

+------------------+-----------+------------------------------------------------------------------------+

| user       | host   | authentication_string                         |

+------------------+-----------+------------------------------------------------------------------------+

| root       | %     | $A$005$7o{'|'AomAw(QvF#.p5wLtCnrG6yX6XQdDVQivGr96POVL.gKnhIAhUhl3. |

| mysql.infoschema | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE               |

| mysql.session  | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE               |

| mysql.sys    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE               |

| root       | localhost | $A$005$0.-%i)H{uYi@zFo7uYF82fYw7DsA93vYLr4uZv6I1tSKao0sbzzcDap3 |

+------------------+-----------+------------------------------------------------------------------------+

5 rows in set (0.00 sec)

9.設(shè)置權(quán)限(為root分配權(quán)限,以便可以遠(yuǎn)程連接)

mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)

10.由于Mysql5.6以上的版本修改了Password算法,這里需要更新密碼算法,便于使用Navicat連接

mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.11 sec)

mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.11 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

11. 使用navicat 連接mysql,如圖:



12.建庫(kù)、建表、加數(shù)據(jù)




查看掛載本地?cái)?shù)據(jù)盤的內(nèi)容:


13. 測(cè)試將容器移除后,數(shù)據(jù)是否仍然存在

docker rm -f test_msyql


容器已經(jīng)移除了。重新部署test_mysql,參照第5的步驟,進(jìn)入新容器,訪問數(shù)據(jù)庫(kù):

xushijiandeiMac:data xushijian$ docker run -itd -p 3307:3306 --name test_mysql -v /usr/local/mysqlData/test/conf:/etc/mysql -v /usr/local/mysqlData/test/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
65b7a60050aaef5765ed055acfd071c7c76f60e85dc25d0e73e0d56eae14aed1
xushijiandeiMac:data xushijian$ docker exec -it test_mysql bash
root@65b7a60050aa:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
| test        |
+--------------------+
5 rows in set (0.01 sec)

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from user_user;
+---------+-----------+-------------+--------+
| user_id | user_name | phone    | note  |
+---------+-----------+-------------+--------+
|    1 | 沒長(zhǎng)正 | 13980000000 | 測(cè)試 |
+---------+-----------+-------------+--------+
1 row in set (0.06 sec)

發(fā)現(xiàn)數(shù)據(jù)仍然可以使用,不需要額外的配置,實(shí)現(xiàn)了數(shù)據(jù)的持久化。

阿里云上docker 部署 MySQL(通過編排模板部署)

<1. 配置同第3步類似(只是目錄變化)

master:
 image: 'mysql:latest'
 environment:
  - MYSQL_ROOT_PASSWORD=123456
 ports:
  - '3307:3306/tcp'
 volumes:
  - '/usr/local/mysqlData/master/conf:/etc/mysql:rw'
  - '/usr/local/mysqlData/master/data:/var/lib/mysql:rw'
 labels:
  aliyun.scale: '1'

<2.如下圖,已部署完成

[root@c13a6d832fd0a49398c62002361d75c60-node1 ~]# clear
[root@c13a6d832fd0a49398c62002361d75c60-node1 ~]# docker ps
CONTAINER ID    IMAGE                                  COMMAND         CREATED       STATUS       PORTS                      NAMES


8597b7539a3a    mysql:latest                              "docker-entrypoint..."  3 minutes ago    Up 3 minutes    0.0.0.0:3307->3306/tcp              mysql_master_1


<3.進(jìn)入容器,進(jìn)行權(quán)限設(shè)置,后續(xù)過程參照本機(jī)

[root@c13a6d832fd0a49398c62002361d75c60-node1 /]# docker exec -it mysql_master_1 bash
root@2fc0bbf48941-mysql-master-1:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

<4. 開放3307端口,使得外網(wǎng)可以訪問

      云服務(wù)器ECS -> 安全組 -> 選擇所在的地區(qū) ->配置規(guī)則 -> 添加安全組


添加安全組,如圖:


5.外網(wǎng)訪問,如下圖


已連接成功。

主從環(huán)境搭建:

主庫(kù):

[root@c13a6d832fd0a49398c62002361d75c60-node1 ~]# docker exec -it mysql_master_1 bash
root@2fc0bbf48941-mysql-master-1:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
+--------------------+
4 rows in set (0.30 sec)

mysql> create database test;
Query OK, 1 row affected (0.12 sec)

mysql> show database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1
mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
| test        |
+--------------------+
5 rows in set (0.00 sec)

從庫(kù):    

[root@c13a6d832fd0a49398c62002361d75c60-node1 ~]# docker exec -it mysql-slave_slave_1 bash
root@c8661e16e3fd-mysql-slave-slave-1:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
+--------------------+
4 rows in set (0.40 sec)

mysql> show slave status\G
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event 主從配置成功!
         Master_Host: 47.94.225.124
         Master_User: rep
         Master_Port: 3307
        Connect_Retry: 60
       Master_Log_File: binlog.000003
     Read_Master_Log_Pos: 155
        Relay_Log_File: c8661e16e3fd-mysql-slave-slave-1-relay-bin.000004
        Relay_Log_Pos: 363
    Relay_Master_Log_File: binlog.000003
       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
       Replicate_Do_DB: 
     Replicate_Ignore_DB: 
      Replicate_Do_Table: 
    Replicate_Ignore_Table: 
   Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
          Last_Errno: 0
          Last_Error: 
         Skip_Counter: 0
     Exec_Master_Log_Pos: 155
       Relay_Log_Space: 762
       Until_Condition: None
        Until_Log_File: 
        Until_Log_Pos: 0
      Master_SSL_Allowed: No
      Master_SSL_CA_File: 
      Master_SSL_CA_Path: 
       Master_SSL_Cert: 
      Master_SSL_Cipher: 
        Master_SSL_Key: 
    Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
        Last_IO_Errno: 0
        Last_IO_Error: 
        Last_SQL_Errno: 0
        Last_SQL_Error: 
 Replicate_Ignore_Server_Ids: 
       Master_Server_Id: 1
         Master_UUID: a482f5fe-80fb-11e8-9fb1-0242ac12020c
       Master_Info_File: mysql.slave_master_info
          SQL_Delay: 0
     SQL_Remaining_Delay: NULL
   Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
      Master_Retry_Count: 86400
         Master_Bind: 
   Last_IO_Error_Timestamp: 
   Last_SQL_Error_Timestamp: 
        Master_SSL_Crl: 
      Master_SSL_Crlpath: 
      Retrieved_Gtid_Set: 
      Executed_Gtid_Set: 
        Auto_Position: 0
     Replicate_Rewrite_DB: 
         Channel_Name: 
      Master_TLS_Version: 
    Master_public_key_path: 
    Get_master_public_key: 0
1 row in set (0.00 sec)

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
+--------------------+
4 rows in set (1.01 sec)

mysql> show database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1
mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mysql       |
| performance_schema |
| sys        |
| test        |
+--------------------+
5 rows in set (0.00 sec)

主從庫(kù)原理分析:


i/o線程去請(qǐng)求主庫(kù) 的binlog,并將得到的binlog日志寫到relay log(中繼日志) 文件中; 主庫(kù)會(huì)生成一個(gè) log dump 線程,用來給從庫(kù) i/o線程傳binlog;  

SQL 線程,會(huì)讀取relay log文件中的日志,并解析成具體操作,來實(shí)現(xiàn)主從的操作一致,而最終數(shù)據(jù)一致;

即: 從庫(kù)IO線程請(qǐng)求 -> 中繼日志 ->獲取binlog ->從庫(kù)SQL線程,解析

參考:

    https://docs.docker.com/ docker 官網(wǎng)文檔

    https://blog.csdn.net/gf0515/article/details/80466213 Mac Navicat連接Docker  MySql8.0

   docker mysql 主從復(fù)制

    https://blog.csdn.net/qq_28804275/article/details/80891951 主從環(huán)境搭建

    docker mysql Dockerfile mysql 開源鏡像Dockerfile及配置

    https://www.cnblogs.com/Aiapple/p/5792939.html 主從復(fù)制原理、高可用分析

    http://www.cnblogs.com/Aiapple/p/5793786.html 實(shí)戰(zhàn)

到此這篇關(guān)于Docker 部署 Mysql8.0的方法示例的文章就介紹到這了,更多相關(guān)Docker 部署 Mysql8.0內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker Overlay2磁盤空間占用過大清理的方法實(shí)現(xiàn)

    Docker Overlay2磁盤空間占用過大清理的方法實(shí)現(xiàn)

    隨著業(yè)務(wù)量的不斷增大,容器的不斷啟動(dòng),往往會(huì)出現(xiàn)磁盤空間不足,本文主要介紹了Docker Overlay2磁盤空間占用過大清理的方法實(shí)現(xiàn),感興趣的可以了解一下
    2022-03-03
  • docker容器修改端口和目錄映射的方法步驟

    docker容器修改端口和目錄映射的方法步驟

    在使用Docker時(shí),容器的端口映射是一個(gè)核心概念,它允許容器與宿主機(jī)以及外部網(wǎng)絡(luò)進(jìn)行通信,這篇文章主要介紹了docker容器修改端口和目錄映射的方法步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • 阿里云esc服務(wù)器Docker部署單節(jié)點(diǎn)Mysql的講解

    阿里云esc服務(wù)器Docker部署單節(jié)點(diǎn)Mysql的講解

    今天小編就為大家分享一篇關(guān)于阿里云esc服務(wù)器Docker部署單節(jié)點(diǎn)Mysql的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Docker中關(guān)于Namespace隔離機(jī)制全面解析

    Docker中關(guān)于Namespace隔離機(jī)制全面解析

    為了更好地理解容器的運(yùn)行原理,本篇文章將會(huì)以?Linux?宿主機(jī)為例,介紹容器的底層技術(shù),包括容器的命名空間、控制組、聯(lián)合文件系統(tǒng)等,需要的朋友可以參考下
    2022-06-06
  • 利用OpenVSwitch在多臺(tái)主機(jī)上部署Docker的教程

    利用OpenVSwitch在多臺(tái)主機(jī)上部署Docker的教程

    這篇文章主要介紹了利用OpenVSwitch在多臺(tái)主機(jī)上部署Docker的教程,包括配置多個(gè)容器的IP地址等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • docker容器添加對(duì)外映射端口的實(shí)現(xiàn)

    docker容器添加對(duì)外映射端口的實(shí)現(xiàn)

    本文主要介紹了docker容器添加對(duì)外映射端口的實(shí)現(xiàn) ,從而實(shí)現(xiàn)容器與外部網(wǎng)絡(luò)的通信,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Docker修改容器內(nèi)部文件的3種簡(jiǎn)單方法

    Docker修改容器內(nèi)部文件的3種簡(jiǎn)單方法

    docker容器化技術(shù)在打包生產(chǎn)和發(fā)布中占據(jù)著更高的地位,其高效簡(jiǎn)便很有亮點(diǎn),下面這篇文章主要給大家介紹了關(guān)于Docker修改容器內(nèi)部文件的3種簡(jiǎn)單方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • 關(guān)于docker清理Overlay2占用磁盤空間的問題(親測(cè)有效)

    關(guān)于docker清理Overlay2占用磁盤空間的問題(親測(cè)有效)

    使用Docker過程中,長(zhǎng)時(shí)間運(yùn)行服務(wù)容器,導(dǎo)致不能進(jìn)行上傳文件等操作,今天通過本文給大家詳細(xì)介紹下docker清理Overlay2占用磁盤空間的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-03-03
  • Docker基礎(chǔ)命令詳解

    Docker基礎(chǔ)命令詳解

    Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上。本文給大家分享docker基礎(chǔ)命令,感興趣的朋友一起看看吧
    2016-10-10
  • docker-compose之基本語(yǔ)法解讀

    docker-compose之基本語(yǔ)法解讀

    這篇文章主要介紹了docker-compose之基本語(yǔ)法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論

兴化市| 红桥区| 讷河市| 博客| 荆州市| 墨竹工卡县| 利川市| 江山市| 五河县| 那曲县| 萝北县| 盐边县| 武邑县| 东至县| 云阳县| 乳山市| 香港| 沅江市| 甘德县| 吉林市| 岢岚县| 来安县| 三都| 阆中市| 沭阳县| 湄潭县| 宜州市| 临湘市| 左云县| 古蔺县| 林西县| 麻阳| 新乐市| 吕梁市| 平昌县| 宜章县| 和静县| 黄大仙区| 莎车县| 华坪县| 房产|