docker安装mysql 5.8以及root用户远程授权。
这里偷懒直接用kitematic可视化安装mysql ,指令方式请自行搜索,哈哈。
============================================================================
1,安装完了第一步更改默认密码。 MYSQL_ROOT_PASSWORD
2,然后截图中点击exec ,黑框里mysql -uroot -p 登录命令 use mysql =====> select * from user where User='root' \G;
可以看到,目前这个root的用户的localhost和%远程账户都已存在,只不过加密算法用的是新的
接下来问题就简单了,直接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语句,不过会报错
没办法啦。。。曲线救国,既然已经存在的用户不让折腾,你可以重新创建一个,用旧的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()函数被干掉了。。。。用不了 ********************
==========================================================================