docker 下载
MySQL文档地址:
https://hub.docker.com/_/mysql/
docker pull mysql # 拉取最新版mysql镜像
之后docker会自动拉取(下载)MySQL镜像。
拉取成功后我们查看一下:
docker images
输入以下命令:
docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
duso docker run -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql
到这里我们查看容器运行状态:
docker ps
可以看到容器的简写ID,容器的源镜像,创建时间,状态,端口映射信息,容器名字等
docker exec -it mysqlserver /bin/bash
或者
docker exec -it mysqlserver bash
docker exec
:在运行的容器中执行命令
语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
mysql -h localhost -u root -p
若访问不成功请查看是否开启远程连接
mysql> use mysql; mysql> select user,host from user;
host | user |
---|---|
% | root |
localhost | mysql.infoschema |
localhost | mysql.session |
localhost | mysql.sys |
localhost | root |
如果host没有% 就需要执行
8.0版本
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 ,'password'改成你的密码 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 ,'password'是你的密码
grant all privileges on *.* to root@'%' identified by "password";
刷新权限
FLUSH PRIVILEGES;
如果连接状态为 2003
可能造成出现的原因: