docker安装mysql 5.8以及root用户远程授权。

docker安装mysql 5.8以及root用户远程授权。

这里偷懒直接用kitematic可视化安装mysql ,指令方式请自行搜索,哈哈。
 

============================================================================

1,安装完了第一步更改默认密码。        MYSQL_ROOT_PASSWORD

docker安装mysql 5.8以及root用户远程授权。

2,然后截图中点击exec ,黑框里mysql -uroot -p    登录命令 use mysql =====>   select * from user where User='root' \G;
可以看到,目前这个root的用户的localhost和%远程账户都已存在,只不过加密算法用的是新的

docker安装mysql 5.8以及root用户远程授权。

接下来问题就简单了,直接sql语句改了这个plugin插件方式,和authentication_string就OK啦。。。。

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'zilaike';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

最后别忘了刷新权限

FLUSH PRIVILEGES;

结束战斗。。。。。。

(这两个语句缺一不可哦,单独执行第二句会报错)

========================= other     后面都是扯犊子。。。可以不看 =================================

本来以为没权限,手残执行了grant语句,不过会报错

docker安装mysql 5.8以及root用户远程授权。

没办法啦。。。曲线救国,既然已经存在的用户不让折腾,你可以重新创建一个,用旧的mysql_native_password模式

CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
GRANT ALL PRIVILEGES ON database_name.* TO'username'@'localhost’;

好了,你的新用户出来了,把生成的密码和验证方式update给root的%远程用户即可。。。。

update user set plugin='mysql_native_password'   ,    authentication_string='*5CB31D23CF87A259E6C308B06528623383421A86'   ;

 

==========================================================================

 *********    对了,提一下,mysql5.8中 password()函数被干掉了。。。。用不了  ********************

==========================================================================