Docker安装MySql
Docker安装MySql
查找镜像
查找Docker Hub上的mysql镜像
[root@VM_0_14_centos ~]# docker search mysql
安装mysql
拉取MySQL镜像
[root@VM_0_14_centos ~]# docker pull mysql
Using default tag: latest
Trying to pull repository docker.io/library/mysql ...
latest: Pulling from docker.io/library/mysql
9fc222b64b0a: Pulling fs layer
9fc222b64b0a: Pull complete
291e388076f0: Pull complete
d6634415290b: Pull complete
1f1e7d852ad4: Pull complete
125fc05f36e0: Pull complete
2aed16e5b02f: Pull complete
5fa9342b7235: Pull complete
6ce062d9949d: Pull complete
c5a4e96aaa50: Pull complete
60ca60d28457: Pull complete
e93ef9cc9bb0: Pull complete
9bc6d9fa3f72: Pull complete
Digest: sha256:01cf53f2538aa805bda591d83f107c394adca8d31f98eacd3654e282dada3193
Status: Downloaded newer image for docker.io/mysql:latest
查看镜像
[root@VM_0_14_centos ~]# docker images mysql
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql latest 62a9f311b99c 3 weeks ago 445 MB
以下命令使用 mysql默认的配置来启动一个 mysql容器实例:
[root@VM_0_14_centos ~]# docker run -di --name test_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
bf7ccf3fda98e256e13f522075ffb34d6378cac8841c1233745fe95783ec1f40
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
mysql设置
设置容器使用脚本执行
[root@VM_0_14_centos ~]# docker exec -it test_mysql /bin/bash
登陆mysql
root@bf7ccf3fda98:/# mysql -u root -p
远程登陆MySQL设置
查看mysql的版本
mysql> status;
--------------
mysql Ver 8.0.17 for Linux on x86_64 (MySQL Community Server - GPL)
进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)
mysql> GRANT ALL ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则
更改加密规则
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.01 sec)
更新root用户密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)