mysql远程权限问题

一、创建用户并授权

1、登录

  mysql  mysql -u root -p

2、创建数据库  

  create database test;//以创建test为例

3、创建用户创建user01,只能本地访问  

  create user user01@'localhost' identified by 'password';

  创建user02,可以远程访问  

  create user user02@'%' identified by 'password'

4、修改用户密码以user01为例:  

  set password for 'user01'@'localhost'=password('anotherpassword')

5、授权授予user01管理test的全部权限  

  grant all privileges on test.* to user01;

  授予user02查看权限,并修改密码  

    grant select on *.* to 'user02'@'%' identified by 'anotherpassword';

  授予所有权限

    GRANT ALL PRIVILEGES ON *.* TO zhangsan@"%" IDENTIFIED BY "lisi";

二、设置mysql允许远程连接(ubuntu系统)

1、 sudo vi /etc/mysql/my.cnf

2、注释掉如下两行:  bind-address=127.0.0.1  skip-network(mysql5.6版本里没有这行)

3、sudo service mysql restart

结合一中的授权,被授权用户可以远程访问 

方案一:如果你的 MySQL 是 8.0 或更高版本(推荐)
这是最标准的做法,将创建用户和授权分为两步:

第一步:创建用户

sql
CREATE USER 'arbor'@'%' IDENTIFIED BY 'password123';
注意:如果密码中的特殊字符(如 ! 或 #)仍引发问题,可以尝试用单引号把整个密码括起来,确保密码被完整识别。

第二步:授予权限

sql
GRANT ALL PRIVILEGES ON . TO 'arbor'@'%';
(可选)刷新权限

sql
FLUSH PRIVILEGES;

posted @ 2022-07-15 10:41  Arborblog  阅读(158)  评论(0)    收藏  举报