目標:在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連接一下: