首先,在docker环境下, mysql 是无法使用 service 和 systemctl .

1、关闭 mysql 容器,并删除 mysql 容器。

docker stop 容器id

docker rm  容器id

2、启动mysql 容器时,加上  /usr/sbin/init

   docker run -d -p 3306:3306 --net=env10 --ip=192.168.10.4 --restart=always --name 自定义容器名  mysql镜像名  /usr/sbin/init

3、进入 mysql 容器
    docker  exec -it  容器名   /bin/bash

4、查看mysql 状态
      /etc/init.d/mysqld status

5、如果没有启动,那start
     /etc/init.d/mysqld start

6、 登录mysql  
    mysql  -uroot -p 
   提示输入密码,默认root 是没有密码的,直接回车。 报错:
   “Access denied for user 'root'@'localhost' (using password: NO”
7、bianji  my.cnf  添加 跳过验证,在my.cnf   最后一行加上:
     
    vim  /etc/my.cnf   (没有 vim,可以 安装 centos方式 : yum -y install vim*  ,ubuntu 方式: sudo apt-get install vim-gtk )
    #添加如下内容
     skip-grant-tables

8、 /etc/init.d/mysqld restart

9、 mysql  -uroot -p   回车  成功登录 mysql

10、修改 root 的密码、已经远程登录的权限 
 

use mysql;
update user set host='%' ,password=password('123345')   where user='root';

/*
##[mysql 5.7 的修改语句, 5.7 没有 password 字段了,变成了 authentication_string ]*/
update user set host='%' ,authentication_string=password('123345')  where user='root';



   ##授权

grant  all privileges on *.*  to  root@'%'  identified  by '123456' with  grant  option;

  ##刷新权限

 flush privileges;

结束!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐