Linux下docker安装MySQL

1.拉取MySQL镜像

可以先通过docker search mysql,可以看到MySQL的众多镜像,然后自行选择下载。
在这里插入图片描述

  • 拉取镜像:
docker pull mysql

mysql 此处是对应的镜像名
通过docker images查看镜像是否下载成功。

2、运行镜像

  • 首先创建数据卷挂载目录和文件
mkdir -p  docker/mysql/config
mkdir -p  docker/mysql/data
  • 在config目录创建my.cnf,并编辑
vi my.cnf
  • my.cnf中编辑,配置字符集
[mysqld]
user=mysql
character-set-server=utf8

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
  • 运行镜像,创建镜像实例
docker run -d -p 3306:3306 \
-v /home/ubuntu/docker/mysql/config/my.cnf:/etc/my.cnf \
-v /home/ubuntu/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD="123456" --name mysql mysql

注:

  • \ 是命令换行
  • -d 容器后台运行,并返回容器ID
  • -p 指定端口映射,格式 为:前面是主机端口,后面是容器端口。
  • -v 数据卷挂载,需要自行创建好。
  • -e 设置MySQL属性,root密码
  • -name 是给镜像实例去别名
  • 最后的mysql 是镜像名,如果拉取的镜像名不是mysql,注意修改,可以docker images查看镜像,可能是mysql/mysql-server或者其他镜像。

3、Navicat测试连接

填入主机地址,如果是本机,就是localhost,服务器的话就填对应ip,端口是3306,也可以映射不同的端口。
在这里插入图片描述

ERROR

  • 1130错误:需要配置root权限
docker exec -it mysql bash
mysql -u root -p123456
use mysql
update user set host='%' where user='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '';
select host,user from user;
flush privileges;

注:
docker exec -it mysql bash 进入MySQL容器
flush privileges 是刷新,使得立即生效。
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘’; 是命令来允许root用户从任意位置登录。(此处可能和后面需要改密码有关)

  • 1251错误:需要修改密码
docker exec -it mysql bash
mysql -u root -p123456
use mysql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的新密码';
flush privileges;

Tips:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值