Hadoop笔记 Help

010-Docker安装MySQL5.7

一、拉取MySQL5.7镜像

$ docker pull mysql:5.7 # 等待镜像拉取完成 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7 5107333e08a8 5 months ago 501MB

二、快速启动一个MySQL容器

$ docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 812f56f8f239 mysql:5.7 "docker-entrypoint.s…" 4 seconds ago Up 4 seconds 33060/tcp, 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp mysql

三、挂载数据卷方式启动MySQL容器

1.创建数据挂载目录

$ mkdir -p /opt/software/mysql/mysql-01/conf $ touch /opt/software/mysql/mysql-01/conf/my.cnf $ mkdir -p /opt/software/mysql/mysql-01/data $ mkdir -p /opt/software/mysql/mysql-01/logs

2.编写my.cnf配置文件

[mysqld] #skip-grant-tables skip-host-cache skip-name-resolve datadir=/var/lib/mysql socket=/var/run/mysqld/mysqld.sock secure-file-priv=/var/lib/mysql-files user=mysql symbolic-links=0 pid-file=/var/run/mysqld/mysqld.pid [client] socket=/var/run/mysqld/mysqld.sock !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/

3.挂载启动容器

$ docker run -p 3306:3306 --name mysql --restart=always --privileged=true \ -v /opt/software/mysql/mysql-01/logs:/var/log/mysql \ -v /opt/software/mysql/mysql-01/data:/var/lib/mysql \ -v /opt/software/mysql/mysql-01/conf/my.cnf:/etc/my.cnf \ -v /etc/localtime:/etc/localtime:ro \ -e MYSQL_ROOT_PASSWORD=123456 -itd mysql:5.7

4.查看容器状态,测试链接

$ docker ps
$ docker logs mysql-01
$ docker exec -it mysql-01 mysql -uroot -p123456

5.MySQL无法登录问题

"Host '106.6.72.227' is not allowed to connect to this MySQL server. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

my.cnf配置文件中的#skip-grant-tables取消注释后重启容器

docker restart mysql

重启后登录mysql执行以下操作

use mysql; grant all privileges on *.* to 'root'@'%' with grant option; flush privileges; exit;

再将my.cnf配置文件中的skip-grant-tables注释后重启容器

Last modified: 11 October 2024