mysql8.0.22设置远程连接
关闭防火墙
(提示:以下命令必须按顺序执行,否则会出现不可预知的麻烦!)
登陆到mysql命令行:
mysql -u root -p
进入之后选择mysql库,查看user表中的用户信息
mysql> use mysql
mysql> select host, user, authentication_string, plugin from user; +-----------+------------------+------------------------------------------------------------------------+-----------------------+ | host | user | authentication_string | plugin | +-----------+------------------+------------------------------------------------------------------------+-----------------------+ | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | root | $A$005$)C%}|B/O#6> cNUWhdcLdaapuvYsxy2VqkPkMwwU.0AM9tJ1iO5SVr7 | caching_sha2_password | +-----------+------------------+------------------------------------------------------------------------+-----------------------+
修改root用户的host,刷新修改,赋予权限
mysql> update user set host='%' where user='root'; mysql> flush privileges;
如果防火墙关闭的话root已经可以连接了,我觉得下面这句命令应该是给其它用户授予的,root本身已经有这些权限 mysql> GRANT ALL ON *.* TO 'root'@'%'; #这个指令的意思是给予用户名为root主机名为任何的对象在任何库任何表上的所有权限,我自己理解的
---------------------------------此时我的mysql已经可以在其它机器上用MySql Workbench连接了---------------------------------------
根据需要在使用MySql Workbench建立一些特定用户
-------比较旧版本的SQLyog和Navicat还需要以下设置:
修改加密规则
注意:执行以下命令一定要在命令行窗口下,用一些客户端工具会有风险!
先use mysql一下,如果没有使用如果当前使用的库不是mysql,然后执行下面语句
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'yourpassword' PASSWORD EXPIRE NEVER;
更新 root 用户密码的验证方式
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
mysql> FLUSH PRIVILEGES;
---------------------------------------------------------------------------------------------------------------------------------------
创建一般用户
#1、创建新用户 mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'userpassword'; #给普通用户远程连接的权限: #2、授权 myuser 用户对指定库的所有表,所有权限并设置远程访问 mysql> GRANT ALL ON 指定库.* TO 'username'@'%'; #3、更新 该 用户密码 mysql> ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'userpassword'; #4.刷新权限 mysql> FLUSH PRIVILEGES; ok,可以使用一般用户username了。
删除用户
删除账户及权限: mysql>drop user 'username'@'%';