首先提示一点,当使用新增用户登陆失败:
root@controller:~# mysql -h localhost -ukeystone -ppasswordERROR 1045 (28000): Access denied for user 'keystone'@'localhost' (using password: YES)
解决方法:
增加普通用户后,执行:
mysql> use mysql
mysql> delete from user where user='';
mysql> flush privileges;
意思是删除匿名用户。
OK,搞定,enjoy!
添加用户及授予权限
grant all privileges on *.* to lhy@'10.163.225.87' identified by '123'; *.*代表所有表,lhy是账户,‘123′是密码, “10.163.225.87“是ip,当ip地址是“%”时匹配所有地址。
GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';
GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost';
我先按我的理解解释一下上面两句的意思
建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的
然后第二句的意思是 ,给这个discuz用户操作discuz数据库的所有权限
使用GRANT
GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:
mysql> GRANT <privileges> ON <what>
-> TO <user> [IDENTIFIED BY "<password>"]
-> [WITH GRANT OPTION];
正如你看到的,在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍,并最终给出一些例子以让你对它们的协同工作有一个了解。
<privileges>是一个用逗号分隔的你想要赋予的权限的列表。你可以指定的权限可以分为三种类型:
数据库/数据表/数据列权限: Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。
查询某个用户的权限
show grants for 你的用户;
show grants for root@'localhost';
show grants for webgametest@10.3.18.158;
show create database dbname; 这个可以看到创建数据库时用到的一些参数。
show create table tickets; 可以看到创建表时用到的一些参数
查询所有用户:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
下面是导入导出数据库
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
二、远程导入导出数据库(或者表)
远程数据库导入:
删除账户及权限:>drop user 用户名@'%';
>drop user 用户名@ localhost;