@TOC
前言
Docker中安装MarialDb
一、安装Docker
#安装docker
yum install docker
#查看版本
docker version
#设置为服务
systemctl start docker.service
systemctl enable docker.service
二、安装MarialDb
1. 正常流程
#拉取镜像
docker search mariadb
docker pull mariadb
docker images
#创建挂载目录
mkdir -p /data/database/marialdb
#创建容器(确保本地映射目录是空的)(密码含特殊字符会导致登录不了 提示报错Access denied for user 'root'@'localhost' (using passwor))
docker run --name offflinesteammariadb -p 9201:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/database/mariadb:/var/lib/mysql -d mariadb
#进入容器
docker exec -ti containerId bash
#登录mysql:提示报错Access denied for user 'root'@'localhost' (using passwor)
mysql -u root -p
2.异常流程
进入Mysql.cnf路径(docker中是docker.cnf)
cd /etc/mysql/conf.d
安装vim
apt-get update
apt-get install vim
修改配置文件
skip-grant-tables
添加权限
flush privileges;
GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY “root”;
flush privileges;
总结
1、我做了一件什么事?
- 在Docker中,安装MariaDb
2、这件事有什么用?
- 以后在需要安装MaraiDb时,直接执行上述脚本即可。可以考虑写一个dockerfile
3、出现了哪些问题?是否解决?是否明确了问题出现的根本原因?
- 在刚开始创建时,使用了一个复杂的密码,包含一些特殊字符,如@,$,^等字符,导致容器创建成功后,进入后却无法登录,提示如:Access denied for user ‘root’@‘localhost’ (using passwor)。后将密码改为不带特殊字符的密码,进入容器后就登录成功了。
- 第一个创建时,使用了特殊字符,导致无法登录成功,后面我删除了容器,改为了简单密码,却也没法登录。后面发现容器我挂载的同一个目录,删除容器时,没有删除目录里的文件。
4、学到了哪些知识点?
- MariaDb密码不能包含特殊字符,否则会提示Access denied for user ‘root’@‘localhost’ (using passwor)
- MariaDb用Docker创建时,如果指定了挂载目录,需要确保挂载目录是空的。