1.添加MySQL账户

mysql> GRANT ALL PRIVILEGES ON *.* TO

‘www’@'localhost’IDENTIFIED BY ’123456′ WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘www’@'%’IDENTIFIED

BY ’123456′ WITH GRANT OPTION;

mysql> GRANT RELOAD,PROCESS ON *.* TO

‘admin’@'localhost’;

mysql> GRANT USAGE ON *.* TO ‘dummy’@'localhost’;

用GRANT语句创建的账户有下面的属性:

前两个账户有相同的用户名www和密码123456。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户

(‘www’@'localhost’)只用于从本机连接时。另一个账户(‘www’@'%’)可用于从其它主机连接。请注意www的两个账户必须能从任何主机以www连接。没有localhost账户,当www从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,www将被视为匿名用户。原因是匿名用户账户的Host列值比’www’@'%’账户更具体,这样在user表排序顺序中排在前面。

一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin

reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin

processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。

一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为’N'。假定你将在以后将具体权限授予该账户。

2.从MySQL删除用户账户

要想移除账户,应使用DROP USER语句:

DROP USER user [, user] …

3.限制账户资源

要想用GRANT语句设置资源限制,使WITH子句来命名每个要限制的资源和根据每小时记数的限制值。例如,要想只以限制方式创建可以访问customer数据库的新账户,执行该语句:

mysql> GRANT ALL ON customer.* TO

‘francis’@'localhost’

-> IDENTIFIED BY ‘frank’

-> WITH MAX_QUERIES_PER_HOUR 20

-> MAX_UPDATES_PER_HOUR 10

-> MAX_CONNECTIONS_PER_HOUR 5

-> MAX_USER_CONNECTIONS 2;

要想设置或更改已有账户的限制,在全局级别使用GRANT

USAGE语句(在*.*)。下面的语句可以将keer的查询限制更改为200:

mysql> GRANT USAGE ON *.* TO ‘keer’@'localhost’ WITH

MAX_QUERIES_PER_HOUR 200;

该语句没有改变账户的已有权限,只修改了指定的限制值。

要想取消已有限制,将该值设置为零。例如,要想取消keer每小时可以连接的次数的限制,使用该语句:

mysql> GRANT USAGE ON *.* TO ‘keer’@'localhost’ WITH

MAX_CONNECTIONS_PER_HOUR 0;

当账户使用资源时如果有非零限制,则对资源使用进行记数。

4.设置账户密码

可以用mysqladmin命令在命令行指定密码:

shell> mysqladmin -u username -h hostname password

“yourpassword”

该命令重设密码的账户为user表内匹配User列的username和Host列你发起连接的客户端的记录。

为账户赋予密码的另一种方法是执行SET PASSWORD语句:

mysql> SET PASSWORD FOR ‘www’@'%’ =

PASSWORD(’123456′);

只有root等可以更新mysql数据库的用户可以更改其它用户的密码。如果你没有以匿名用户连接,省略FOR子句便可以更改自己的密码:

mysql> SET PASSWORD = PASSWORD(’123456′);

你还可以在全局级别使用GRANT USAGE语句(在*.*)来指定某个账户的密码而不影响账户当前的权限:

mysql> GRANT USAGE ON *.* TO ‘www’@'%’ IDENTIFIED BY

’123456′;

一般情况下最好使用上述方法来指定密码,你还可以直接修改user表:

要想在创建新账户时建立密码,在Password列提供一个值:

shell> mysql -u root mysql

mysql> INSERT INTO user (Host,User,Password)

VALUES(‘%’,'www’,PASSWORD(’123456′));

mysql> FLUSH PRIVILEGES;

要想更改已有账户的密码,使用UPDATE来设置Password列值:

shell> mysql -u root mysql

mysql> UPDATE user SET Password = PASSWORD(’123456′) WHERE

Host = ‘%’ AND User = ‘www’;

mysql> FLUSH PRIVILEGES;

当你使用SET

PASSWORD、INSERT或UPDATE指定账户的密码时,必须用PASSWORD()函数对它进行加密。(唯一的特例是如果密码为空,你不需要使用PASSWORD())。需要使用PASSWORD()是因为user表以加密方式保存密码,而不是明文。如果你忘记了,你可能会象这样设置密码:

shell> mysql -u root mysql

mysql> INSERT INTO user (Host,User,Password)

VALUES(‘%’,'www’,’123456′);

mysql> FLUSH PRIVILEGES;

结果是密码’123456′保存到user表后没有加密。当www使用该密码连接服务器时,值被加密并同保存在user表中的进行比较。但是,保存的值为字符串’123456′,因此比较将失败,服务器拒绝连接:

shell> mysql -u www -p 123456 test

Access denied

当然你使用GRANT … IDENTIFIED BY语句或mysqladmin

password命令设置密码,它们均会加密密码。在这种情况下,不需要使用 PASSWORD()函数。

5.设置账号远程访问

有些时候创建的数据库账号都是针对数据库服务器本地的,在集群中mysql数据库是共用的,那就需要给出一个账号能够让集群中的其他服务器远程访问,具体操作如下

mysql> use mysql;

mysql> GRANT ALL ON *.* TO www@’%’ IDENTIFIED BY ’123456′

WITH GRANT OPTION;

#注解:允许任何IP地址的主机用【www】帐户和密码【123456】来访问这个MySQL Server

#必须加类似这样的帐户,才可以远程登陆。root帐户是无法远程登陆的,只可以localhost登陆

测试使用下面命令即可

mysql -h *.*.*.* -u www -p 123456

在测试的发现了一个问题

mysql -h localhost -u www -p 123456

如下命令我在本地用localhost访问是失败的,google之后才发现原来上面的’%'居然不包括localhost的,所以为了本地也能方位数据库需要再加上下面一句

mysql> GRANT ALL ON *.* TO www@’localhost’ IDENTIFIED BY

’123456′ WITH GRANT OPTION;

okay,测试通过

mysql用户主机设置密码_MySQL用户账号管理(添加、删除、限制、设置密码、远程访问)...相关推荐

  1. 删除mysql主键语句_MySQL主键添加/删除

    2改动数据库和表的字符集 alter database maildb default character set utf8;//改动数据库的字符集 alter table mailtable defa ...

  2. 给mysql用户授权命令_mysql添加用户并授权的命令(示例)

    本节内容: mysql用户授权命令与mysql常用命令. 1,新建(添加)用户. 复制代码 代码示例: //登录MYSQL >mysql -u root -p >密码 //创建用户 mys ...

  3. mysql 用户与数据_MySQL经验9-用户和数据安全

    mysql心得9--用户和数据安全 1. 添加用户 可以使用CREATE USER语法添加一个或多个用户,并设置相应的密码.  语法格式: CREATE USER user [identified B ...

  4. mysql存储业务日志_MySQL 日志管理

    一.MySQL 日志 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql数据库的客户端连接状况.SQL语句的执行情况和错误信息等.当数 ...

  5. Linux的MySQL用户编程使用_MySQL数据库在linux的安装,编程与操作

    来自:http://blog.csdn.net/lxh090821/article/details/9410943 1       登录数据库 格式: MySQL -h主机地址 -u用户名 -p用户密 ...

  6. mysql 用户划表_mysql用户表

    mysql5.6中mysql.user表 一些特殊符号: 在myql中% *是通配符, ::1 是IPv6格式的 127.0.0.1 Host列指定了允许用户登录所使用的IP,比如user=root ...

  7. mysql用户控制登录_MySql用户权限控制_MySQL

    bitsCN.com MySql用户权限控制 本文将介绍MySql创建帐号,删除帐号,设置和介绍各种帐号的权限 创建用户帐号: www.bitsCN.com [sql] CREATE USER use ...

  8. 如何给远程计算机添加用户,如何访问远程计算机以添加/删除/管理用户帐户?...

    我有一个场景,我需要访问远程计算机以编程方式添加和删除Windows用户帐户 . 远程机器是一个"备用工作站",我需要远程配置,准备好以防万一主工作站需要更换 - 所以这里没有安全 ...

  9. mysql用户replace权限_mysql查看用户的权限脚本

    1.安装mysql支持python包 yum -y install mysql-connector-python 2.查看MySQL 用户权限的Python脚本 vi py_priv.py #!/us ...

  10. mysql查看主机名_mysql怎么看主机名

    mysql查看主机名的方法: 1.查看主机名 在Ubuntu系统中,快速查看主机名有多种方法: 在终端窗口中,主机名通常位于@符号后:root@lzyws739307453:~#,例如这个的主机名就是 ...

最新文章

  1. ios: coreData的NSManagedObject setvalue为null
  2. 让你的 wowza server提供 RESTful web 服务
  3. VTK:图片之ImageOpenClose3D
  4. CSS3的box-shadow属性:给指定的区域加阴影
  5. Oracle 10G select工作原理
  6. fastq质量值_fastq 数据格式解析
  7. git 怎么提交忽略文件夹_git 设置忽略文件提交的几种方式
  8. python绘制散点图的步骤_python如何绘制散点图?
  9. 转:Vim中显示不可见字符
  10. SpringCloud工作笔记070---SpringCloud中使用Redis存储List类型数据
  11. Win7精简成功后的总结
  12. 无法定位libjasper-dev
  13. 文学家是什么时候出现的
  14. 每日一题: 第十四题
  15. WSL2 通过 USBIP 连接USB串口设备 JetsonUSB备份刷机
  16. 计算某一天是星期几(C语言,可运行)
  17. PHPExcel 锁定表头 设置样式,背景颜色,居中,宽,单元格合并
  18. L19-python核心编程-面向对象编程(day1、2)
  19. np.log1p()取对数符合正态分布
  20. 前端面试题(react)

热门文章

  1. XSS 存储漏洞修复
  2. 在Unity中利用Mono.Cecil将代码注入到Dll中
  3. 银河帝国----基地前奏
  4. 使用jib-maven-plugin分层构建Docker镜像——避免直接使用FatJar
  5. 深度多模态子空间聚类网络+代码实现
  6. 毕业设计开题报告撰写方法
  7. Codeforces Gym100962J:Jimi Hendrix(树型DP)
  8. python登录qq定时发消息_python自动发送qq消息
  9. No Matter What
  10. kubelet源码分析(五)之 syncPod