起因:我们的测试妹子需要在一个新测试环境里重新搭建一个系统,于是需要全量更新一下mysql.然后我拿了杰少给我的sql,就屁颠屁颠跑过去了
- sql大致如下
drop database if exist xxx_db;
create database xxx_db default character set utf8 collate utf8_general_ci;
create user 'xxx_user' identifby 'xxx_pwd';
grant all privileges on xxx_db.* to xxx_user;
flush privileges;
//省略一大堆表的sql
xxx;
xxx;
- source xxx.sql
这个sql大概300行,运行完后检查了一下初始的结构和数据,发现没有问题,就开始升级系统了.结果tomcat直接扑街了.
Access Denied(Use Password:Yes)
但是第一反应是 我是不是权限是不是分配错了,使用root进入控制台后
select host,user from MYSQL.USER;
结果显示 host是%,没错啊...
然后我开始google...
直到十几分钟后再次select * from MYSQL.user;
才发现password竟然是null.一检查sql发现-
sql中有这玩意
原来identified by写成了这个...
于是乎
update Mysql.user set password = PASSWORD('xxx_pwd') where user = 'xxx_user';
flush privileges;
这样以后系统就可以访问mysql了
但是测试告诉我 mysql -u xxx_user -p 依旧无法进入,百思不得其解.
经薛少点播后才知道,除了host=%之外,如果需要登录本地的话,还需要建一个127.0.0.1和localhost.