Windows連接docker mysql

目標:在docker裏安裝mysql5.7並且可以通過工具訪問

安裝mysql:

查詢:

docker search mysql

下載(卡的直接停了再重新下,事實證明我卡了兩天都沒下好,Ctrl+C 停了再下30s):

docker pull mysql

指定版本下載命令:

docker pull mysql:5.7

查看鏡像:

docker image ls

運行mysql

docker run -p 3307:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:5.7

參數:

-p 3307:3306                                                    將主機3307端口映射到容器3306端口

-e MYSQL_ROOT_PASSWORD=abc123       設置遠程登錄的root用戶密碼爲abc123

--name                                                              可選,設置容器別名

mysql                                                                鏡像名稱

docker run -p 3307:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci

指定編碼集

查看運行結果:

 

然後就跟本地安裝一樣,設置遠程登錄:

進入容器:

docker exec -it 39dfe9a9c741 bash

39dfe9a9c741是容器的短id

全部的命令行:

root@39dfe9a9c741:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, 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> select host,user,plugin,authentication_string from mysql.user;
+-----------+---------------+-----------------------+-------------------------------------------+
| host      | user          | plugin                | authentication_string                     |
+-----------+---------------+-----------------------+-------------------------------------------+
| localhost | root          | mysql_native_password | *A4B6157319038724E3560894F7F932C8886EBFCF |
| localhost | mysql.session | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| %         | root          | mysql_native_password | *A4B6157319038724E3560894F7F932C8886EBFCF |
+-----------+---------------+-----------------------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

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

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

mysql> quit;
Bye
root@39dfe9a9c741:/# exit
exit

提取:

1:mysql -uroot -p //登錄mysql

2:select host,user,plugin,authentication_string from mysql.user;//查詢權限

3:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;//更新登錄權限

4:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';//設置密碼

5:flush privileges;//刷新權限

6:quit;//退出mysql

7:exit//退出容器

設置密碼有版本區分,具體可自行百度

都設置完畢後,重啓容器。

docker restart 39dfe9a9c741

因爲我是win7,用docker的話必須是虛擬機,所以查詢docker的ip:

docker-machine ip default

用Navicat連接一下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章