MYSQL Error 2061

在phpmyadmin中更新password 时,选错了auth 方式,没有选mysql-native-password, 选了一个sha256 什么的。。再用root登录,就立马出现了 error 2061

后来google 了好久,才发现在mysql 5.X 中,默认的auth 方式是mysql-native-password方式,在mysql 8 中一般会选用sha256什么的。。

现在问题的关键是root 无法登陆,这是因为root 的auth 方式被更改为了 sha256-password 的方式。 知道了问题的原因,解决起来就好说了

解决步骤:

1) 关闭mysql 服务

service mysql stop

2) start mysql without password auth

mysqld_safe --skip-grant-tables &

3) 重启mysql 服务

service mysql start

4)用root 登录

mysql -uroot -p

5) 更新root 的密码和auth 方式

mysql 5.7.5 及以前

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD"), plugin="mysql_native_password" where User='root';
mysql> flush privileges;
mysql> quit

6)关闭mysql 服务

service mysql stop

7) 启动mysql 服务

service mysql start

 

 

 

MySql 的 ONLY_FULL_GROUP_BY

最近把mysql 升级到了5.7.18 然后就发现了一个很明显的变化, ONLY_FULL_GROUP_BY 这个mysql mode 被加了进来, 按照sql 99 的标准这是好事.

但是实际上, mysql 的这个版本只能说almost identical or very close to, 不能说完全相等

简单的说,就是

That is, MySQL 5.7.5m15 will by default reject only those GROUP 
BY-queries that include non-aggregated expressions in the SELECT-list that 
are not functionally dependent upon the GROUP BY-list.

This not only means that you cannot mess up your GROUP BY-queries anymore 
(as MySQL will now reject an improper GROUP BY query), 
it will also not require you to write non-sensical "dummy" aggregates
 over expressions that can only have one value per aggregated 
result row. Hurrah!

详细的解释请看这篇文章:

http://rpbouman.blogspot.nl/2014/09/mysql-575-group-by-respects-functional.html