目录

一、查看可用的mysql镜像

二、拉取 MySQL 镜像

三、查看已安装镜像

四、运行容器

五、安装成功

 六、启动mysql

七、退出容器

八、设置docker启动时启动mysql

九、Navicat连接数据库


一、查看可用的mysql镜像

docker search mysql

 一般STARS最高的就是官方的,也可以通过MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags

二、拉取 MySQL 镜像

        获取最新的镜像:

docker pull mysql:latest

三、查看已安装镜像

docker images

四、运行容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql/data:/var/lib/mysql mysql --lower_case_table_names=1

--name 启动容器设置容器名称为mysql-test 

-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。

-v 设置容器目录/var/lib/mysql映射到本地目录/data/mysql/data

--lower_case_table_names=1 忽略大小写敏感,不然linux下mysql表明是默认大小写敏感

  • lower_case_file_system:表示当前系统文件是否大小写敏感(ON为不敏感,OFF为敏感),只读参数,无法修改。

  • lower_case_table_names:表示表名是否大小写敏感,可以修改。

  注意:这里直接设置密码123456,可以不设置,默认会生成密码,查询初始密码并修改

#查询初始密码
grep 'password' /var/log/mysqld.log

#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

#刷新权限
FLUSH PRIVILEGES;

五、安装成功

 六、启动mysql

        注意:启动完容器后(第五步)直接使用mysql -h localhost -u root -p连接会报错:“-bash: mysql: command not found 或者“-bash: mysql: 未找到命令”,需要先进入容器再连接mysql:

#docker exec -it 【容器id】 /bin/bash

docker exec -it 42d6d493d778 /bin/bash
mysql -h localhost -u root -p

查看数据库修改成功:

show global variables like '%lower_case%';

七、退出容器

        先输入exit退出mysql,再输入exit退出容器。

八、设置docker启动时启动mysql

docker update 42d6d493d778 --restart=always

注意:42d6d493d778为上图mysql容器id

九、Navicat连接数据库

        报错10060和10061问题

        解决办法:

        1、首先查看3306端口有没有开通

        [root@hadoop ~]# sudo firewall-cmd --permanent --add-port=3306/tcp

        2、没有开放则添加3306端口

        [root@hadoop ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent

        3、添加端口后刷新防火墙或者关闭防火墙

        [root@hadoop ~]# firewall-cmd --reload

        [root@hadoop ~]# sudo systemctl stop firewalld

        4、再次使用Navicat连接数据库即可

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐