在root账号下创建数据库账号创建成功之后,添加了一个新的用户,在给用户设定权限时报错

如何恢复mysql数据库的root账户权限
[问题点数:40分]
本版专家分:0
结帖率 50%
CSDN今日推荐
本版专家分:0
本版专家分:0
本版专家分:6412
2014年10月 其他数据库开发大版内专家分月排行榜第二2014年9月 其他数据库开发大版内专家分月排行榜第二
2014年8月 其他数据库开发大版内专家分月排行榜第三
本版专家分:107
本版专家分:6412
2014年10月 其他数据库开发大版内专家分月排行榜第二2014年9月 其他数据库开发大版内专家分月排行榜第二
2014年8月 其他数据库开发大版内专家分月排行榜第三
本版专家分:471013
2012年 荣获名人称号
2010年 总版技术专家分年内排行榜第二
2009年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第十2011年 总版技术专家分年内排行榜第七
本版专家分:0
本版专家分:0
本版专家分:1626
匿名用户不能发表回复!
其他相关推荐root账户没有权限创建数据库这是怎么回事
[问题点数:40分,无满意结帖,结帖人Ryan2B]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:65083
2016年10月优秀小版主
2017年1月 总版技术专家分月排行榜第三
2017年2月 PHP大版内专家分月排行榜第一2017年1月 PHP大版内专家分月排行榜第一
2017年7月 PHP大版内专家分月排行榜第二2017年6月 PHP大版内专家分月排行榜第二2017年5月 PHP大版内专家分月排行榜第二2017年4月 PHP大版内专家分月排行榜第二2017年3月 PHP大版内专家分月排行榜第二2016年12月 PHP大版内专家分月排行榜第二2016年11月 PHP大版内专家分月排行榜第二2016年10月 PHP大版内专家分月排行榜第二2016年9月 PHP大版内专家分月排行榜第二2016年7月 PHP大版内专家分月排行榜第二2016年6月 PHP大版内专家分月排行榜第二2016年3月 PHP大版内专家分月排行榜第二2016年2月 PHP大版内专家分月排行榜第二2016年1月 PHP大版内专家分月排行榜第二2015年11月 PHP大版内专家分月排行榜第二2015年10月 PHP大版内专家分月排行榜第二2015年8月 PHP大版内专家分月排行榜第二2015年7月 PHP大版内专家分月排行榜第二2015年6月 PHP大版内专家分月排行榜第二2015年4月 PHP大版内专家分月排行榜第二2015年3月 PHP大版内专家分月排行榜第二2015年2月 PHP大版内专家分月排行榜第二2015年1月 PHP大版内专家分月排行榜第二2014年12月 PHP大版内专家分月排行榜第二2014年11月 PHP大版内专家分月排行榜第二2014年10月 PHP大版内专家分月排行榜第二2014年9月 PHP大版内专家分月排行榜第二2014年8月 PHP大版内专家分月排行榜第二2014年7月 PHP大版内专家分月排行榜第二2014年6月 PHP大版内专家分月排行榜第二
本版专家分:0
本版专家分:0
匿名用户不能发表回复!
其他相关推荐扫一扫,访问微社区
查看: 4047|回复: 5
云币945 威望302 最后登录积分302注册时间帖子
云币945 威望302
目前数据库中添加其他用户,还无法直接在控制台中添加,该功能还在开发中;
当前可以直接通过MySQL的命令行或者phpMyAdmin中命令语句添加普通用户。
云数据库中自己的root用户禁止删除,但是用户可以在控制台或者使用命令行重置密码。
云数据库中的tencentroot用户,是实例默认自带的用户,用来做后台管理的,例如冷备、回档,不要删除或者做更改,以免导致实例异常。
具体说明如下:
root用户可以使用mysql的grant命令对其他用户进行授权,注意不能使用grant all进行授权。
目前shutdown和file权限没有开放给root用户,因此root不能新建拥有所有权限的用户。
授权时,请参考以下命令:grant SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, ALTER on *.* to 'myuser'@'%' identified by 'mypasswd';
SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 这些是要赋予的权限
*.*& && && && &&&前面的*代表数据库,后面的*代表数据表
myuser& && & 是要添加的用户的账号
mypasswd&&是要设置的密码
以phpMyAdmin中添加用户做下演示:
1、首先云数据库控制台,使用root用户、密码,登陆phpMyAdmin
22:03 上传
22:11 上传
2、登陆pma后,点击“SQL”,输入添加用户的语句,点击“执行”按钮
例如图片中,就是添加 dbuser01 这个用户,密码设置为 goodbye888
命令如下:grant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER on *.* to
identified by 'goodbye888';
22:09 上传
执行返回结果无报错,代表添加成功。
22:10 上传
3、验证是否添加成功
可以退出root登录的phpMyAdmin
22:14 上传
使用添加的账号、密码,重新登录一下phpMyAdmin,如果登录成功代表用户添加无问题
22:16 上传
有 1 人觉得本主题有帮助
云币1449 威望425 最后登录积分425注册时间帖子
程序猿[LV2], 积分 425, 距离下一级还需 775 积分
云币1449 威望425
原本PHPMyadmin 里面是有web界面账号管理功能的, 腾讯不知道为什么把这个删除了.
云币945 威望302 最后登录积分302注册时间帖子
云币945 威望302
这个功能确实去掉了,之前可能是为了安全性考虑,怕用户误删后台tencentroot账号。
后续控制台会增加普通用户的功能,敬请期待。
云币1017 威望597 最后登录积分597注册时间帖子
程序猿[LV2], 积分 597, 距离下一级还需 603 积分
云币1017 威望597
云币73 威望17 最后登录积分17注册时间帖子
小白[LV1], 积分 17, 距离下一级还需 283 积分
云币73 威望17
请问一下,我新建了一个数据库:db,在创建了一个用户:dba@%, 然后执行:
grant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER on db.* to 'dba'@'%' identified by '123123';
执行的结果是:#1044 - Access denied for user 'root'@'%' to database 'db',
求解???
云币16 威望2 最后登录积分26注册时间帖子
小白[LV1], 积分 26, 距离下一级还需 274 积分
云币16 威望2
装一个数据库管理软件就可以管理用户名了啊
Powered bymysql 数据库授权&给某个用户授权某个数据库&
1.新建用户。
//登录MYSQL
@&mysql -u root -p
//创建用户
mysql& insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
//刷新系统权限表
这样就创建了一个名为:phplamp
密码为:1234
然后登录一下。
@&mysql -u phplamp -p
@&输入密码
mysql&登录成功
2.为用户授权。
//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@&mysql -u root -p
//首先为用户创建一个数据库(phplampDB)
mysql&create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
&grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表
mysql&其它操作
先设置该用户只有show database权限
grant select,insert,update,delete on redmine1.* to " identified by "jira";
===============================================
授权任何主机访问:
grant all privileges on flower.* to 'flower'@'%' identified by '123456'
====================================================================
  Mysql授权远程访问
在安装mysql的机器上运行:
  1、d:\mysql\bin\&mysql -h localhost -u root
  //这样应该可以进入MySQL服务器
  2、mysql&GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
  //赋予任何主机访问数据的权限
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
  GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
  GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  3、mysql&FLUSH PRIVILEGES
===========================================================
本地访问加密码和远程一致,方便调试:
使用phpmyadmin,这是最简单的了,修改mysql库的user表,
不过别忘了使用PASSWORD函数。
使用mysqladmin,这是前面声明的一个特例。
mysqladmin -u root -p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
那么这种方法就是无效的。
而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
mysql& INSERT INTO mysql.user (Host,User,Password)
VALUES(%,jeffrey,PASSWORD(iscuit));
mysql& FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
在《mysql中文参考手册》里有这个例子,所以我也就写出来了。
注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
和方法三一样,只是使用了REPLACE语句
mysql& REPLACE INTO mysql.user (Host,User,Password)
VALUES(%,jeffrey,PASSWORD(iscuit));
mysql& FLUSH PRIVILEGES
使用SET PASSWORD语句,
mysql& SET PASSWORD FOR jeffrey@"%" = PASSWORD(iscuit);
你也必须使用PASSWORD()函数,
但是不需要使用FLUSH PRIVILEGES。
使用GRANT ... IDENTIFIED BY语句
mysql& GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。
今天刚刚装上了SQLyog 8.14,没想到是没有注册的版本,于是上网搜索了一个注册码,经验证有效。
用户名:yunjian
注册码:81f43d3dd20872b6
==========================================
整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!
方法1: 用SET PASSWORD命令
  mysql -u root
  mysql& SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法2:用mysqladmin
  mysqladmin -u root password "newpass"
  如果root已经设置过密码,采用如下方法
  mysqladmin -u root password oldpass "newpass"
方法3: 用UPDATE直接编辑user表
  mysql -u root
  mysql&
  mysql& UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
  mysql& FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
  mysqld_safe --skip-grant-tables&
  mysql -u root mysql
  mysql& UPDATE user SET password=PASSWORD("new password") WHERE user='root';
  mysql& FLUSH PRIVILEGES;
======================================================================
ubuntu server下安装了MySQL 5.5数据库,然后在windows下通过Navicat for MySQL连接时,出现 Can't connect to mysql server on xxx.xxx.xxx.xxx(10038) 的问题。
解决方案如下:
mysql&grant all privileges on *.*
identified by 'youpassword'
2、修改/etc/mysql/my.conf
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可
MySQL中授权(grant)和撤销授权(revoke)
MySQL 赋予用户权限命令的简单格式可概括为:
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利
grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
或者,用一条 MySQL 命令来替代:
grant select, insert, update, delete on testdb.* to common_user@'%'
二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数等权限
grant 创建、修改、删除 MySQL 数据表结构权限。
grant create on testdb.* to developer@'192.168.0.%';
grant alter
on testdb.* to developer@'192.168.0.%';
grant drop
on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 外键权限:
grant references on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 临时表权限:
grant create temporary tables on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 索引权限:
grant index on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 视图、查看视图源代码权限:
grant create view on testdb.* to developer@'192.168.0.%';
grant show
view on testdb.* to developer@'192.168.0.%';
grant 操作 MySQL 存储过程、函数权限:
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
grant alter
routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
grant execute
on testdb.* to developer@'192.168.0.%';
三、grant 普通 DBA 管理某个 MySQL 数据库的权限
grant all privileges on testdb to dba@'localhost'
其中,关键字 “privileges” 可以省略。
四、grant 高级 DBA 管理 MySQL 中所有数据库的权限:
grant all on *.* to dba@'localhost'
五、MySQL grant 权限,分别可以作用在多个层次上
1. grant 作用在整个 MySQL 服务器上:
grant select on *.* to dba@ -- dba 可以查询 MySQL 中所有数据库中的表。
on *.* to dba@ -- dba 可以管理 MySQL 中的所有数据库
2. grant 作用在单个数据库上:
grant select on testdb.* to dba@ -- dba 可以查询 testdb 中的表。
3. grant 作用在单个数据表上:
grant select, insert, update, delete on testdb.orders to dba@
这里在给一个用户授权多张表时,可以多次执行以上语句。例如:
grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345';
grant select on smp.mo_sms to mo_user@'%' identified by '123345';
4. grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to dba@
5. grant 作用在存储过程、函数上:
grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function testdb.fn_add to 'dba'@'localhost'
六、查看 MySQL 用户权限
查看当前用户(自己)权限:
查看其他 MySQL 用户权限:
show grants for dba@
七、撤销已经赋予给 MySQL 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
all on *.* to
revoke all on *.* from dba@
八、MySQL grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。
2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“
grant select on testdb.* to dba@localho
这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。
mysql授权表共有5个表:user、db、host、tables_priv和columns_priv。
授权表的内容有如下用途:
user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。
db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。
host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。
tables_priv表
tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列。
columns_priv表
columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列。
人气:5948
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.044 (s). 13 q(s)mysql在cmd模式下的命令大全_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
mysql在cmd模式下的命令大全
你可能喜欢

我要回帖

更多关于 数据库账号创建 的文章

 

随机推荐