docker中创建MySQL及在外部使用Navicat连接

时间:2023-03-08 16:14:39
docker中创建MySQL及在外部使用Navicat连接

1:获取MySQL镜像

运行 docker pull mysql

[root@MyCentos7- ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
85b1f47fba49: Pull complete
5671503d4f93: Pull complete
3b43b3b913cb: Pull complete
4fbb803665d0: Pull complete
05808866e6f9: Pull complete
1d8c65d48cfa: Pull complete
e189e187b2b5: Pull complete
02d3e6011ee8: Pull complete
d43b32d5ce04: Pull complete
2a809168ab45: Pull complete
Digest: sha256:1a2f9361228e9b10b4c77a651b460828514845dc7ac51735b919c2c4aec864b7
Status: Downloaded newer image for mysql:latest

2:启动MySQL镜像

[root@MyCentos7- ~]# docker run --name=mysql -itd -p : -e MYSQL_ROOT_PASSWORD=abcd123 mysql
eb3dbfb0958f5c856323e4d8da60d43194884ff05d7adac1ec059adb66ac7f7b

docker run是启动容器的命令;

--name:指定了容器的名称,方便之后进入容器的命令行

-itd:其中,i是交互式操作,t是一个终端,d指的是在后台运行

-p:指在本地生成一个随机端口,用来映射mysql的3306端口

-e:设置环境变量

MYSQL_ROOT_PASSWORD=emc123123:指定了mysql的root密码

mysql:指运行mysql镜像

3:进入MySQL容器

运行  docker exec -it mysql /bin/bash

[root@MyCentos7- ~]# docker exec -it mysql /bin/bash
root@my-mysql-v1-nths4:/usr/local/mysql#

4:进入MySQL

运行  mysql -uroot -p

root@my-mysql-v1-nths4:/usr/local/mysql# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7.-m14 MySQL Community Server (GPL) Copyright (c) , , 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 |
+--------------------+
3 rows in set (0.02 sec)

5:进行配置,使外部工具可以连接

为了安全,首先需要设置root帐号的密码

mysql> update user set authentication_string = password('root') where user = 'root';

root的密码改为root。 
接着,由于mysql中root执行绑定在了localhost,因此需要对root进行授权,代码如下,

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

最后,使用navitecat测试mysql连接,如下,

docker中创建MySQL及在外部使用Navicat连接

参考:http://xiaoqiangge.com/aritcle/1496481502190.html