docker安装mysql

语法:

docker run -p 3307:3306  --name mysql5  -e MYSQL_ROOT_PASSWORD=123456 -d hub.c.163.com/library/mysql

解释:

  • run启动
  • -p 3307:3306 映射 
  • --name mysql5 起一个名字
  • -v  把容器内的位置映射到linux本地机上
  •  -e MYSQL_ROOT_PASSWORD=123456 设置密码
  • -d 后台运行
  • hub.c.163.com/library/mysql 镜像名字

 

问题:

  • show variables like '%char%'
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | latin1                     |
    | character_set_connection | latin1                     |
    | character_set_database   | latin1                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | latin1                     |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+

     

解决:docker安装mysql需要配置my.conf,需要先去容器中将文件拷贝带本地宿主机上,然后删除原来的容器重新映射启动。

  • docker pull mysql:5.7
  • docker run -p 3306:3306 --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d images-id 启动镜像
  • docker exec -it docker-id bash   进入mysql容器
  • cd /etc/mysql/
  • ls -al
  • cat mysql.cnf 查看mysql配置文件,他把配置文件放在另外两个路径下
  • 都进去查看一番,发现/etc/mysql/mysql.conf.d 路径中有个文件,如下
  •  cat mysqld.cnf(红色是我配置过,正常第一次进来没有)
  • 需要将容器中mysql目录下的文件全部copy出去,映射启动容器
  • 退出容器exit
  • /home/soft/mysql/docker/mysql目录下创建三个文件夹conf、 data、 logs
  • cd conf 进入conf  
  • docker cp 容器-name:etc/mysql .  将mysql容器中etc/mysql目录的所有文件copy到当前目录下
  • cd mysql进入mysql
  • mv *.* ..将当前目录的文件移动到上一层目录
  • cd .. 退回到上一层目录
  • rm -rf mysql  删除mysql目录
  • 修改:mysql.conf.d/mysqld.cnf文件
  • 启动容器:
    docker run -p 3306:3306 --name mysql5.7 
    -v  /home/soft/mysql/docker/mysql/conf:/etc/mysql/   //配置
    -v /home/soft/mysql/docker/mysql/logs:/var/log/mysql //日志
    -v /home/soft/mysql/docker/mysql/data:/var/lib/mysql //数据
    -e MYSQL_ROOT_PASSWORD=123456 -d 9e64176cd8a2 

     

  • mysql -h 120.25.236.19 -P 3306 -uroot -p123456 进入mysql
  • show variables like '%char%'
    mysql> show variables like '%char%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    

     

 

当安装MySQL8版本或者出错请参考下方

  • 外部链接出错:plugin caching_sha2_password could not be loaded
  • linux登录mysql: mysql -h10.0.0.1 -uroot -p123 
  • 修复方式:
    • 使用mysql:use mysql
    • 修改数据库:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
    • 重新修改密码后可连接成功:alter user 'root'@'%' identified by '123456';
    • 刷新数据库:flush privileges;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值