记一次mysql外网访问配置问题

我需要单独设置一个mysql账户来给别人使用

使用管理员账户登录

  1. mysql -u root -p
  2. 输入密码

    首先创建一个mysql账户

  3. CREATE USER 'songYu'@'%' IDENTIFIED BY 'pass123456';
  4. 如果需要修改密码:update mysql.user set password=password('键入新密码') where user='songYu';

    授权数据库权限给用户。

  5. 查看有哪些数据库:`show databases;
  6. 授权:grant all privileges on 数据库名.* to 'songYu'@'%';
    • all 可以替换为 select,delete,update,create,drop
    • % 表示外网可访问,如果是本地用localhost

      刷新保证生效

  7. flush privileges;

在nodejs中连接指定账户报错

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

说nodejs连接mysql8.0的验证不通过。

解决办法

  1. 使用root登录mysql
  2. 键入:ALTER USER 'songYu'@'%' IDENTIFIED WITH mysql_native_password BY 'pass123456';
    • % 表示外网可访问,如果是本地用localhost
    • pass123456 是账户的密码
  3. 刷新使其生效:flush privileges;



如果你遇到了前端难题,或者需要一对一帮扶服务,请到淘宝搜索店铺:前端在线或扫下面二维码

  转载规则


《记一次mysql外网访问配置问题》宋宇采用知识共享署名 4.0 国际许可协议进行许可。
  目录