1、docker search mysql
2、docker pull mysql
3、docker images 查看下载镜像列表
4、# docker run --name mysql -p 3306:3306 -v /mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
787b06122b723e547b1216d499b69d99725a703217cd09f49e9ce548f9ba27dc
--name: 以什么名字启动容器
-p 3306:3306 :将容器端口映射到服务器端口
-v /mysql/datadir:/var/lib/mysql :将mysql的配置路径映射到本地datadir上
-e MYSQL_ROOT_PASSWORD=123456 :设置服务器密码为123456
-d mysql:需要启动的容器的名称
5、使用 docker ps 查看镜像启动情况如下图可以看到mysql已经起来了
6、docker stop mysql 停止容器
7、docker ps -a 查看容器状态
8、docker exec -it mysql bash
通过主机命令行进入master容器
这句话的意思就是在容器中运行mysql的bash环境,就如我们在真机中直接运
行mysql一样
9、mysql -uroot -p
以root的身份登陆数据库这些熟悉mysql的都很熟悉这个命令了,剩下的就是
mysql自身的知识了
10、下次直接启动mysql容器就可以了,docker start mysql
备注:mysql8.0不允许远程连接的解决办法:
mysql> select Host,User,plugin from mysql.user;
+-----------+------------------+-----------------------+
| Host | User | plugin |
+-----------+------------------+-----------------------+
| % | root | caching_sha2_password |
| % | vuluser | caching_sha2_password |
查询结果如上,因为认证方式改变导致的。在老版本里,一般使用加密方式为mysql_native_password。所以可以直接修改为老版本的加密方式,或者升级新版本的加密方式。
这里采用更改为老版本的加密
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
ALTER USER 'vuluser'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
或者,配置一下/etc/my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password
改完连接没问题,顺便记一下,新版本的授权方式与老版本有点不同
老版本可以这样写:grant all on *.* to test@'%' identified by '密码';
新版本不能,可以写成这样子:grant all on *.* to test@'%';
退出bash:control + d