mysql设置密码:MySQL的密码设置来源: 发布时间:星期日, 2009年1月4日 浏览:239次 评论:0
="t18">摘要:本文介绍了如何修改个用户密码你可以使用 3种思路方法GRANT语句、SET PASSWORD语句、直接修改授权表以及使用管理工具mysqladmin个重要应用就是如何在遗忘root用户密码时候修改密码使用思路方法是启动MySQL服务器时忽略加载授权表
由MySQL使用用户名和口令思路方法和Unix或Windows使用方式有很多区别的处: ·MySQL使用于认证目用户名和Unix用户名(登录名字)或Windows用户名无关缺省地大多数MySQL客户尝试使用当前 Unix用户名作为MySQL用户名登录但是这仅仅为了方便客户允许用-u或--user选项指定个区别名字这意味着无论如何你不能使得个数据库更安全除非所有MySQL用户名都有口令任何人可以试图用任何名字连接服务器而且如果他们指定了没有口令任何名字他们将成功 ·MySQL用户名最长可以是16各;典型地Unix用户名限制为8个 ·MySQL口令和Unix口令没关系在你使用登录到台Unix机器口令和你使用在那台机器上存取个数据库口令的间没有必要有关联 ·MySQL加密口令使用了个Unix登录期间所用区别算法 本节将介绍如何为MySQL数据库系统用户修改密码 使用myadmin实用 使用mysqladmin实用修改密码命令行是: shell>mysqladmin -u user -p password "password" 运行这个命令在提示输入密码时数据就密码则用户user密码就被改为password 如果原来用户没有密码则不比指定-p选项例如化授权表的后root用户密码就是空你可以这样为root用户设立密码: shell>mysqladmin -u root password "password" 使用语句SET PASSWORD 使用mysqladmin为用户修改密码有个明显缺点就是必须知道用户原来密码如果是为了给遗忘了密码用户重设密码就无能为力了个专门用于修改密码SQL语句为SET PASSWORD: ·SET PASSWORD = PASSWORD('some password') 设置当前用户口令任何非匿名用户能改变他自己口令! 连接到服务器后你可以这样改变自己密码: mysql> SET PASSWORD = PASSWORD('another pass'); ·SET PASSWORD FOR user = PASSWORD('some password') 设置当前服务器主机上个特定用户口令只有具备存取mysql数据库用户可以这样做用户应该以user@hostname格式给出这里 user和hostname完全和他们列在mysql.user表条目User和Host列样例如如果你有个条目其User和Host字段是 'bob'和'%.loc.gov'你将写成: mysql> SET PASSWORD FOR bob@"%.loc.gov" = PASSWORD("pass"); 直接修改授权表 另种修改密码思路方法是直接修改授权表user只有具备存取mysql数据库用户可以这样做 例如如果你有个条目其User和Host字段是'bob'和'%.loc.gov'你将写成: mysql> UPDATE mysql.user SET password=PASSWORD("pass") where user="bob' AND host="%.loc.gov"; mysql>FLUSH PRIVILEGES; 重新设置个遗忘root口令 如果你遗忘了root用户口令那么将会是件非常麻烦事除非你有其它有特权用户否则很多操作都无法完成例如关闭数据库等等 你应当选用--without-grant-tables选项启动mysqld服务你可以在这时更改授权表相关内容也可以用mysqlaccess检查你授权是否到位 例如如果你忘记了你MYSQLroot口令话你可以通过下面过程恢复 1、关闭MySQL服务器 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID文件通常在MYSQL数据库所在目录中 kill `cat /mysql-data-directory/hostname.pid` 你必须是UNIXroot用户或者是你所运行SERVER上同等用户才能执行这个操作 如果在windows平台上也可以停止进程如果是NT还可以用net stop mysql命令关闭数据库 2、使用'--skip-grant-tables' 参数来启动 mysqld Unix平台: $su mysql $safe_mysqld --skip-grant-tables & Windows平台: C:\mysql\bin>mysqld --skip-grant-tables 以上语句假定都位于正确目录 3、连接到服务器修改口令 使用'mysql -h hostname mysql'命令登录到mysqld server 用grant命令改变口令: mysql>GRANT ALL _disibledevent="mailto:root@%">root@%密码除非你有其它root用户存在 4. 载入权限表: shell> mysqladmin -h hostname flush-privileges 或者使用 SQL 命令`FLUSH PRIVILEGES' 当然在这里你也可以重启mysqld 0
相关文章读者评论发表评论 |