Linux Ubuntu 服务器 docker安装MySQL并实现Navicat远程登陆
1、拉取镜像
# 查看系统仓库当前有的镜像
docker images
# 没有MySQL镜像,则拉取(下载)下来
docker pull mysql
这里pull下来是最新的版本,可以通过"docker pull mysql:5.7(版本号)"指定版本
2、启动容器
# 创建一个目录存放mysql数据文件
mkdir mysql
cd mysql
# 创建存放配置、日志、数据的目录
mkdir conf
mkdir logs
mkdir data
# 启动MySQL容器
docker run --name rayshin_mysqldb -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 44100:3306 mysql:latest
命令说明
- -p 44100:3306: 将容器的3306端口映射到主机的44100端口;
- -v $PWD/conf:/etc/mysql/conf.d:将主机/opt/docker_v/mysql/conf目录挂载到容器的/etc/mysql/conf.d;
- -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码;
- -d: 后台运行容器,并返回容器ID;
- -i: mysql镜像ID;
寻找宿主机空闲端口,通过sudo netstat -tunlp命令,status为LISTEN表示端口被占用,sudo netstat -tunlp | grep 44100无返回内容则端口空闲可用
3、进入容器
# 查看当前运行的容器
docker ps
# 进入容器
docker exec -it rayshin_mysqldb bash
或者
docker exec -it 921d71f4d743 bash
4、登录mysql
mysql -u root -p
然后输入123456
# 修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
# 添加远程登录用户
CREATE USER 'rayshin'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
# 授权
GRANT ALL PRIVILEGES ON *.* TO 'rayshin'@'%';