MySQL容器内:ERROR 1044 (42000): Access denied for user 'use_name'@'%' to database 'somedb'

  • 问题描述

    mysql容器内创建新的数据库失败。

  • 解决方案

    因为use_name没有创建数据库的权限,需要用root用户来创建数据库。

    此时,在use_name用户下还是看不到root用户创建的数据库,需要给use_name用户授权此数据库。

    # 进入root用户
    mysql -u root -p
    # 创建数据库
    create database somedb;
    # 查看用户权限
    use mysql # 进入mysql数据库
    select * from user limit 10;
    # 创建用户
    insert into mysql.user(Host,User,Password) values("localhost","use_name",password("123"));
    # 创建用户:允许本地ip访问localhost的数据库
    create user 'editest'@'localhost' identified by 'editest123456';
    # 创建用户:允许外网ip访问数据库
    create user 'editest'@'%' identified by 'editest123456';
    # 查看用户的权限
    show grants for use_name@`%`;
    # 刷新权限
    flush privileges;
    # 创建数据库
    create database somedb
    # 给用户授权此数据库
    GRANT ALL PRIVILEGES ON `somedb`.* TO `use_name`@`%`;
    # 刷新权限
    flush privileges;
    
  • References

  1. MySQL新建用户,授权,删除用户,修改密码
  2. MySQL添加新用户、创建数据库、为新用户分配权限
发布了857 篇原创文章 · 获赞 1291 · 访问量 92万+

猜你喜欢

转载自blog.csdn.net/The_Time_Runner/article/details/105353521
今日推荐