在Docker中安装MySQL
Docker安装Mysql
1、启动Docker
复制代码
- 1
- 2
- 3
- 4
启动:sudo systemctl start docker sudo service docker start 停止:systemctl stop docker 重启:systemctl restart docker
2、查询mysql
复制代码
- 1
docker search mysql
3、安装mysql
默认拉取最新版本mysql
复制代码
- 1
docker pull mysql
拉取指定版本mysql_xxx,例如:
复制代码
- 1
sudo docker pull mysql:5.7
4、查看镜像
复制代码
- 1
docker images
5、本地创建挂载目录-v
二、Docker启动\使用Mysql
1、启动mysql容器(创建镜像实例)
指定版本
复制代码
- 1
- 2
- 3
- 4
- 5
- 6
sudo docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7
最新版本
复制代码
- 1
- 2
- 3
- 4
- 5
- 6
docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:latest
docker run -p 3306:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql
3.命令含义:容器=完整Linux
复制代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
docker run:在docker中启动一个容器实例 -d:该容器在后台运行 -p 3306:3306:容器与主机映射端口为,主机3306,容器3306 --name mysql:容器运行后的名称 -v /mysqldata/mysql/log:/var/log/mysql:将容器/var/log/mysql目录下的数据,备份到主机的 /mysqldata/mysql/log目录下 -v /mysqldata/mysql/data:/var/lib/mysql:将容器/var/lib/mysql目录下的数据,备份到主机的 /mysqldata/mysql/data目录下 -v /mysqldata/mysql/conf:/etc/mysql:将容器/etc/mysql目录下的数据,备份到主机的 mysqldata/mysql/conf目录下 -e MYSQL_ROOT_PASSWORD=root:设置当前mysql实例的密码为root mysql:5.7:需要运行的容器名称以及版本号
2、在var/lib/docker/containers/下查看容器
复制代码
- 1
cd /var/lib/docker/containers/
3、查看mysql进程获取name——mysql名称
复制代码
- 1
docker ps -a
4、进入mysql容器—并登陆mysql
复制代码
- 1
格式:docker exec -it mysql名称 bash
进入mysql容器操作台命令:
复制代码
- 1
docker exec -it mysql bash
登录mysql命令:
复制代码
- 1
mysql -u root -p
输入密码:
5、开启远程访问权限
命令:
复制代码
- 1
use mysql;
命令:
复制代码
- 1
select host,user from user;
命令:
复制代码
- 1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
命令:
复制代码
- 1
flush privileges;
把root用户的密码改成 mysql_native_password 模式,即可远程连接
创建一个账号-admin,用来进行远程访问;
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
赋予所有权限给之前创建的账号:admin
GRANT ALL ON . TO 'admin'@'%';
确认使用密码{123456}登录此账号{admin}
密码尽量复杂,安全性更高。
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限
FLUSH PRIVILEGES;
6、查看docker日志
命令:docker logs -f --tail 10 a4dac74d48f7
7、常用命令
复制代码
- 1
- 2
查看进程 命令:docker ps -a
复制代码
- 1
- 2
关闭docker中mysql容器 命令:docker stop mysqlserver
8、重启docker中mysql重启
复制代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
重启docker 命令:systemctl restart docker 关闭docker 命令:systemctl stop docker 自动重启容器 sudo docker update mysql --restart=always
9、移除原来的container ID(就是长长的那串数字)
复制代码
- 1
docker rm container ID
三、Mysql设置
复制代码
- 1
- 2
- 3
- 4
**1、进入容器:** 命令: docker exec -it mysql bash 命令:mysql -u root -p
2、定位容器位置:
复制代码
- 1
- 2
命令:whereis mysql 显示:mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql
3、退出容器:
复制代码
- 1
exit
4、找到配置文件夹:一级一级的进入
复制代码
- 1
- 2
- 3
命令:cd /mydata/ 命令:cd mysql/ 命令:cd conf/
5、创建配置文件:cnf
复制代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
命令:vi my. cnf 命令:i 粘贴内容: [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect=' SET collation_connection = utf8_unicode_ci ' init_connect=' SET NAMES utf8 ' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve 按键:ESC 命令::wq
6、重启容器
复制代码
- 1
- 2
命令:docker restart mysql 命令:docker exec -it mysql /bin/bash
7、进入文件夹
复制代码
- 1
- 2
- 3
目录:cd /etc/mysql/ 展示:ls 查看文件:cat my. cnf
本文作者:苏筱筱
本文链接:https://www.cnblogs.com/hei-xiu/p/17953819
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步