前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql学习笔记【在Docker里搭建环境】

Mysql学习笔记【在Docker里搭建环境】

原创
作者头像
Porco1Rosso
修改2020-07-01 10:18:22
8510
修改2020-07-01 10:18:22
举报
文章被收录于专栏:程序猿的学习笔记

准备工作

工作环境是macOS

  1. 安装 docker,准备好梯子。过程比较麻烦。Container Runtime with Docker Engine | Docker
  2. 整一个GUI 方便操作。Navicat 就很不错。
  3. docker 安装好后,把仓库换成国内的。阿里云的不错

启动Mysql

拉取最新的镜像

代码语言:txt
复制
docker pull mysql #默认最新版本 8.0+

在宿主机上创建持久化的 data conf mysql-files 文件

代码语言:txt
复制
sudo mkdir /usr/local/mysqlData/db/conf
sudo mkdir /usr/local/mysqlData/db/data
sudo mkdir /tmp/mysql/mysql-files

#顺便把权限做下 
chmod 777 /usr/local/mysqlData/db/conf
...

把docker 工具里把文件夹共享下

20200630195300.jpg
20200630195300.jpg

准备运行镜像

代码语言:txt
复制
docker run -itd -p 3307:3306 —name mysql-dev -v /usr/local/mysqlData/db/conf:/etc/mysql -v /usr/local/mysqlData/db/data:/var/lib/mysql -v /tmp/mysql/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=123456 mysql

需要注意!这里把mysql的3306端口映射到了宿主机的3307

如果一切正常,那么可以看到:

20200630195629.jpg
20200630195629.jpg

如果启动失败了,可以在客户端里看错误日志:

20200630195728.jpg
20200630195728.jpg

然后有针对的处理下就好。

看下服务是不是正常启动了

代码语言:txt
复制
docker exec -it mysql-dev bash

登陆下mysql:

20200630200000.jpg
20200630200000.jpg

这个时候,如果出现1045的错误 可以尝试

代码语言:txt
复制
mysql -hlocalhost -uroot -p123456

准备创建用户信息

代码语言:txt
复制
select user,host,authentication_string from mysql.user;

会出现:

20200630200552.jpg
20200630200552.jpg

如果没有第一行,可以尝试下:

代码语言:txt
复制
	grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;

如果爆出了没有grant的权限,可以insert一个

代码语言:txt
复制
insert user (user, host, ssl_cipher, x509_issuer, x509_subject) values('root', 'localhost', '', '', '');
代码语言:txt
复制
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

搞定!可以用客户端测试下了

9FF91098-8E62-4ADF-A7B4-D9875D808763.png
9FF91098-8E62-4ADF-A7B4-D9875D808763.png

备注

  • 如果后面创建数据库的时候出了1044的错误,多半是授权的问题。重新搞下。
  • 这里面容易出问题的是最开始创建持久化文件夹,以及授权的问题。
  • 梯子很重要。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
  • 启动Mysql
    • 拉取最新的镜像
      • 在宿主机上创建持久化的 data conf mysql-files 文件
        • 把docker 工具里把文件夹共享下
          • 准备运行镜像
            • 看下服务是不是正常启动了
              • 准备创建用户信息
              • 备注
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档