MySQL更新root密码
MySQL更新root密码

新搭建的lnmp环境,默认的数据库权限是本地的,用户想用客户端连接是没有权限的,报如下的错误

SQLException: access denied for  @'localhost' (using password: no)

想远程连接上去,就必须给MySQL用户授权。

操作方法

首先打开连接工具(我使用的是Xshell 5),输入以下命令

# mysql -u root -p 

接着输入root的密码,然后使用use命令切换到mysql数据库,可以先查看需要更新的用户信息,本文以mysql_user为数据库用户,mysql_db为需要操作的数据库;如下

> user mysql;
> select user,host from user;
> update user set host = '%' where user = 'mysql_user';
> grant all privileges on mysql_db.* to mysql_user@'%';
> flush privileges;

做下简单的介绍,update语句是给有用户远程访问的权限,grant是给予用户所有数据库操作权限,最好不要忘记flush下数据库缓存,不然不能马上生效。

现在对grant命令做个介绍:

grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';

整个公式就是这样,当然对已经创建的用户identified by这部分是可以省略的,如果想赋予用户所有权限,则如上面的语句则可。
这里的权限到底有哪些呢,列出几个常用的

1、普通表的权限

select
insert
update
delete
create
alter
drop

2、视图的权限

create view
show view

3、存储过程,方法

execute on procedure
execute on function

4、当然也有所有的

all
NickorWu

By NickorWu

乘风破浪会有时,直挂云帆济沧海

发表评论