mysql 问题总结 只能本地连接问题

MySQL本地可以连接,远程连接不上的解决:

  

1> 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"( 我一般直接在表中修改)

  mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 (也可以把%换成指定ip)

  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

这个时候就会往mysql的user表里面添加一条数据:

  INSERT INTO `user` VALUES ('%', 'root', '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0', '0');

 

 

navicate连接mysql8:

    navicate在连接8的时候会报密码错误,加密方式不同而已

    

    执行下面命令即可

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
 
    然后在连接就好了。

 


mysql8的远程连接:

    

必须先创建用户(密码规则:mysql8.0以上密码策略限制必须要大小写加数字特殊符号)
create user huhy@'%' identified  by 'Huhy123.';

赋值权限
grant all privileges on *.* to huhy@'%' with grant option;

刷新
flush privileges;

当你进行远程连接是,会出现这样的错误:Unable to load authentication plugin 'caching_sha2_password'.
是因为mysql8使用的是caching_sha2_password加密规则,最简单的方法是修改远程连接用户的加密规则:
ALTER USER 'huhy'@'%' IDENTIFIED WITH mysql_native_password BY 'Huhy123.';

练习:

  

create database 数据库名称default character set utf8 collate utf8_bin;
create user '用户名'@'%' identified by '密码';
create user '用户名'@'localhost' identified by 'NFadmin';
grant all privileges on `数据库名`.* to '用户名'@'%' identified by '密码';
grant all privileges on `数据库名`.* to '用户名'@'localhost' identified by '密码';
flush privileges;

 

 

    

 

posted @ 2018-08-15 16:23  陽66  阅读(3243)  评论(0编辑  收藏  举报