Docker配置mysql


首先需要從docker上拉取mysql鏡像

一:拉取命令操作
[root@localhost my.Shells]# docker pull mysql
Using default tag: latest
Trying to pull repository docker.io/library/mysql ...
latest: Pulling from docker.io/library/mysql
f49cf87b52c1: Pull complete
78032de49d65: Pull complete
837546b20bc4: Pull complete
9b8316af6cc6: Pull complete
1056cf29b9f1: Pull complete
86f3913b029a: Pull complete
f98eea8321ca: Pull complete
3a8e3ebdeaf5: Pull complete
4be06ac1c51e: Pull complete
920c7ffb7747: Pull complete
Digest: sha256:7cdb08f30a54d109ddded59525937592cb6852ff635a546626a8960d9ec34c30

 

二:查看docker的鏡像
[root@localhost my.Shells]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql latest f008d8ff927d 9 days ago 408.5 MB


三:運行docker的mysql命令
[root@localhost my.Shells]# docker run --name docker-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=wzy123 -d mysql //用戶默認是root,密碼默認是root的密碼
283a1fa17fef310d9e329e11f10b8179e5be5fd88310be64fb0b4fa75ab5d80f


四:查看mysql容器是否啟動
[root@localhost my.Shells]# docker ps //mysql容器已經啟動了
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
283a1fa17fef mysql "docker-entrypoint.sh" 7 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp docker-mysql


五:docker使用命令行登錄mysql
[root@localhost my.Shells]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
283a1fa17fef mysql "docker-entrypoint.sh" 18 hours ago Up 3 seconds 0.0.0.0:3306->3306/tcp docker-mysql
[root@localhost my.Shells]# docker exec -it docker-mysql bash docker-mysql(鏡像容器的名稱)
root@283a1fa17fef:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var


root@283a1fa17fef:/# mysql -u root -p
Enter password: //wzy123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.21 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>

注意:當使用docker rm [id]后,mysql數據庫的所有數據會全部清除,再重新開啟一個鏡像是一個嶄新的數據庫。

 

 

如果發現navicat遠程連接mysql出現

 


1. 首先在容器中登錄查看mysql版本
mysql> status;
--------------
mysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)

2. 進行授權遠程連接(注意mysql8.0跟之前的授權方式不同)
授權
GRANT ALL ON *.* TO 'root'@'%';
刷新權限
flush privileges;

此時,還不能遠程訪問,因為Navicat只支持舊版本的加密,需要更改mysql的加密規則
3. 更改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

4. 更新root用戶密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

刷新權限
flush privileges;
OK,設置完成,再次使用 Navicat 連接數據庫

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM