一、关于mysql数据库权限的问题
首先,在使用mysql的时候,我们新建一个数据库,并且在数据库新建一个表格后,一般我们会新建一个用户,然后使用该用户对该数据库进行管理,这时候我们必须对于该用户赋予操作该数据库的相关权限,具体有以下几种权限以及对应操作。没有赋予权限时候,golang对于数据库的操作都会报Access Denied的错误。关于mysql的安装以及配置可以借鉴以下博客:http://www.cnblogs.com/sshoub/p/4321640.html
关于新建数据库用户以及赋予用户权限的相关操作如下:
用户管理
mysql>use mysql;
查看
mysql> select host,user,password from
user ;
创建
mysql> create user zx_root
IDENTIFIED by 'xxxxx'; //identified by 会将纯文本密码加密作为散列值存储
修改
mysql>rename user feng to newuser;//mysql 5之后可以使用,之前需要使用update 更新user表
删除
mysql>
drop user newuser; //mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限
更改密码
mysql> set password
for zx_root =password('xxxxxx');
mysql> update mysql.user set password=password('xxxx') where user='otheruser'
查看用户权限
mysql> show grants for zx_root;
赋予权限
mysql> grant
select on dmc_db.*
to zx_root;
回收权限
mysql> revoke select on dmc_db.* from zx_root; //如果权限不存在会报错
上面的命令也可使用多个权限同时赋予和回收,权限之间使用逗号分隔
mysql> grant
select,update,delete ,insert on dmc_db.*
to zx_root;
如果想立即看到结果使用
flush privileges ;