起因:我們的測試妹子需要在一個(gè)新測試環(huán)境里重新搭建一個(gè)系統(tǒng),于是需要全量更新一下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
這個(gè)sql大概300行,運(yùn)行完后檢查了一下初始的結(jié)構(gòu)和數(shù)據(jù),發(fā)現(xiàn)沒有問題,就開始升級(jí)系統(tǒng)了.結(jié)果tomcat直接撲街了.
Access Denied(Use Password:Yes)
但是第一反應(yīng)是 我是不是權(quán)限是不是分配錯(cuò)了,使用root進(jìn)入控制臺(tái)后
select host,user from MYSQL.USER;
結(jié)果顯示 host是%,沒錯(cuò)啊...
然后我開始google...
直到十幾分鐘后再次select * from MYSQL.user;
才發(fā)現(xiàn)password竟然是null.一檢查sql發(fā)現(xiàn)-
sql中有這玩意
原來identified by寫成了這個(gè)...
于是乎
update Mysql.user set password = PASSWORD('xxx_pwd') where user = 'xxx_user';
flush privileges;
這樣以后系統(tǒng)就可以訪問mysql了
但是測試告訴我 mysql -u xxx_user -p 依舊無法進(jìn)入,百思不得其解.
經(jīng)薛少點(diǎn)播后才知道,除了host=%之外,如果需要登錄本地的話,還需要建一個(gè)127.0.0.1和localhost.