首先,在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;
结束!