首页 > 技术文章 > 在Docker中体验数据库之MySql

du-blog 2018-05-15 21:59 原文

  在上一篇在Docker中体验数据库之Mongodb之后,这次记录一下在docker中安装mysql。过程要比Mongodb麻烦一点……

  参考网址:

  https://dev.mysql.com/doc/refman/5.7/en/linux-installation-docker.html

  https://hub.docker.com/r/mysql/mysql-server/

  安装过程如下:

0、docker rm mysql1 -f        // 强制删除容器
1、docker pull mysql/mysql-server
2、docker images
3、docker ps -a 
4、docker run --name mysql1 -p 3307:3306 -d mysql/mysql-server --default-authentication-plugin=mysql_native_password    //注意最后的配置
5、docker logs mysql1 2>&1 | grep GENERATED        //查看日志
6、docker restart mysql1
7、docker logs mysql1 2>&1 | grep GENERATED        //重启之后还是没有发现密码,说明密码为空
8、docker exec -it mysql1 mysql -uroot -p
9、show databases;
10、ALTER USER 'root'@'localhost' IDENTIFIED BY '123qwe';
11select user,host from mysql.user;
// 远程访问docker中的mysql时,连接时会报错,1130
12、UPDATE mysql.user SET host='%' WHERE user='root';
13、docker restart mysql1
//此时终于连接成功!!!!
【例外】
//查看本机IP
1、ip route show
2.1、sudo apt install net-tools
2.2、ifconfig 或者 route -n 或者 netstat -rn   

  在贴一下,安装过程中报的错误:

--default-authentication-plugin=mysql_native_password

  在看一下这个配置,如果没有这个配置,连接数据库时会有如下错误:

  MySQL8.0 的密码加密规则变了,网上一搜2059一大堆……当然你也可以在创建容器的时候不添加这个配置,之后在数据库中修改也是一样的。

alter user 'root'@'%' identified with mysql_native_password by '123qwe';

  最后来一个连接成功的截图:

  最后在记录一个连接:如何查看linux(ubuntu)系统版本信息及CPU信息 

  结束。

  【2019-12-11更新】

  一、更新笔记开始的参考网址

    msql官方:

    1、https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/linux-installation-docker.html

    2、https://dev.mysql.com/doc/refman/8.0/en/linux-installation-docker.html

    docker官方:

    1、https://hub.docker.com/_/mysql

    2、https://hub.docker.com/r/mysql/mysql-server

    注意:在dockerhub中搜索mysql,会搜索到很多结果,其中有两个或许是我们想要的:mysql和mysql/mysql-server……

推荐阅读