记录Mysql创建用户的一个小坑

起因:我们的测试妹子需要在一个新测试环境里重新搭建一个系统,于是需要全量更新一下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写成了这个...

    记录Mysql创建用户的一个小坑_第1张图片
    Paste_Image.png

于是乎

    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.

你可能感兴趣的:(记录Mysql创建用户的一个小坑)