一、将拉下来的mysql镜像跑起来
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
二、再次进入mysql容器中
docker exec -it c0d75389810c bash
三、登陆mysql
mysql -h localhost -u root -p
四、查看自己的数据库
show databases;
五、添加远程登录用户
CREATE USER 'newroot'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
六、给予远程用户所有表所有权限
GRANT ALL PRIVILEGES ON *.* TO 'newroot'@'%';
七、刷新权限
FLUSH PRIVILEGES;
八、主机连接远程数据库
第一次连接失败
返回容器中查看是不是远程用户权限问题:
select host,user,plugin,authentication_string from mysql.user;
我们尝试连接newroot这个用户,因为这里我开始是为newroot这个用户设置的远程访问权限:
注意:可能存在端口占用问题,很难解除占用:
,开启容器时提示本地3306端口被占用,于是就使用这条命令查了下端口使用情况:
fuser -v -n tcp 3306
发现确实被占用了,于是用
kill -s 9 pid
把占用的进程干掉,再次查看是发现还在占用,于是发现是本地的MySQL服务 开着,就通过:
/etc/init.d/mysqld stop
把MySQL服务关掉,发现这时端口3306 已经被释放了。