MySQL 密码设置
本文介绍了如何修改一个用户的密码,你可以使用三种方法,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 "newpassword"
运行这个命令,在提示输入密码时,数据就密码,则用户user的密码就被改为newpassword
。如果,原来的用户没有密码,则不比指定-p选项。例如,初始化授权表之后,root用户的密码就是空的,你可以这样为root用户设立密码:
shell>mysqladmin -u root password "newpassword"
使用语句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("newpass");
直接修改授权表
另一种修改,密码的方法是直接修改授权表user。只有具备存取mysql数据库的用户可以这样做。
例如,如果你有一个条目其User和Host字段是'bob'和'%.loc.gov',你将写成:
mysql> UPDATE mysql.user SET password=PASSWORD("newpass") where user="bob' AND host="%.loc.gov";
mysql>FLUSH PRIVILEGES;
重新设置一个遗忘的root口令
如果你遗忘了root用户的口令,那么将会是一件非常麻烦的事。除非你有其它有特权的用户,否则很多操作都无法完成,例如,关闭数据库等等。
你应当选用--without-grant-tables选项启动mysqld服务,你可以在这时更改授权表的相关内容,也可以用mysqlaccess检查你的授权是否到位。
例如,如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。
1、关闭MySQL服务器
向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
kill `cat /mysql-data-directory/hostname.pid`
你必须是UNIX的root用户或者是你所运行的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 ON *.* TO root@localhost INDENTIFIED BY 'new password'
-> WITH GRANT OPTION;
mysql>GRANT ALL ON *.* TO root@% INDENTIFIED BY 'new password'
-> WITH GRANT OPTION;
(如果存在一个能从任意地址登录的root用户,初始化授权表后,生成该用户,为了安全,你可能已经删除该用户)。
其实也可以直接修改授权表:
mysql> use mysql;
mysql> update user set password =password('yourpass') where user='root';
你可能使用工具mysqladmin修改密码:
shell> mysqladmin -h hostname -u root password 'new password
但是它修改的密码语服务器匹配的用户有关。如果,你从服务器主机连接,那么服务器匹配的是root@localhost,修改该用户密码,否则一般修改root@%密码,除非你有其它root用户存在。
4. 载入权限表:
shell> mysqladmin -h hostname flush-privileges
或者使用 SQL 命令`FLUSH PRIVILEGES'。
当然,在这里,你也可以重启mysqld。
MySQL 密码设置相关推荐
- liunx在线安装mysql/修改mysql密码/设置简单mysql密码
在liunx上安装mysql 在线安装需要使用yum命令需要root权限,普通用户不能使用,如何把普通用户改成root用户,如何判断是不是root用户.参照主页其他文章 1.获取mysql yum源 ...
- mysql密码设置 alert_MySQL用户、权限及密码操作
1 创建用户 1.1 create user 格式如下: CREATE USER 'username'@'hostname' IDENTIFIED BY 'password'; 其中,username ...
- MySQL密码设置和重置,以及远程登入数据库
1.配置MySQL的root密码 默认情况下MySQL没有密码,直接就可以进入: [root@tpp ~]# mysql -uroot 下面我们设置root密码: [root@tpp ~]# mysq ...
- mamp mysql 密码,设置/修改 phpmyadmin 密码 (MAMP)
在使用phpMyAdmin操作数据库时,首先需要设置mysql的root用户的密码.具体操作参考前一篇博文.设置完mysql的root密码之后,需要对phpMyAdmin的登录进行一些配置. 未经配置 ...
- xampp默认mysql密码设置,修改mysql的默认空密码
以前开发我一直都是用的appserv,appserv的特点就是一键安装,安装的时候会要求用户输入mysql的root密码.今天我改用xampp作为我的开发环境,所以碰到了修改mysql默认空密码的问题 ...
- linux root密码激活,Linux - root初始密码设置
Ubuntu刚安装后,不能在terminal中运行su命令,因为root没有默认密码,需要手动设定. 以安装ubuntu时输入的用户名登陆,该用户在admin组中,有权限给root设定密码. 给roo ...
- mysql 密码 特殊符号_MySQL数据库之mysql设置复杂密码中含$特殊符号导致无法命令行登录...
本文主要向大家介绍了MySQL数据库之mysql设置复杂密码中含$特殊符号导致无法命令行登录 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 安全考虑 在设置MYSQL 密码时候 ...
- ubuntu设置MySQL密码
ubuntu设置MySQL密码 1.启动mysql服务器 2. 查看临时用户和密码 3.用临时密码登录 4.修改root用户密码 5.退出MySQL,使密码生效 1.启动mysql服务器 servic ...
- Mysql忘记密码设置新密码
Mysql忘记密码设置新密码 公司开发服务器上的陈年Myqsl不知道登录信息了,没密码但是有数据,所以进行了一次重置密码,过程记录了下来. 1.linux下找到my.cnf配置文件 Centos系统该 ...
最新文章
- 剑指offer:二叉树镜像
- fastjson读取json配置文件
- 推荐一个golang的json库
- [转]Velocity脚本摘要
- 【QGIS入门实战精品教程】1.1:QGIS与GIS的区别和联系
- 数学公式难懂?动态图片来解答,孩子看一遍秒懂
- Linux各发行版本 优缺点 简介
- 一道简单而又容易出错的题目
- 【笔试/面试】—— 不使用大于、小于、if 语句,实现 max 宏
- C++ map的基本操作和使用
- 7.携程架构实践 --- IaaS & PaaS
- cesium使用obj格式的3D模型
- PCB设计流程一原理图
- Information Communication Technology,简称ICT
- 清华镜像下载pytorch 2022-06-23
- Python交流QQ群
- JavaScript单选框选择操作
- Oracle数据库的游标与触发器
- 用c语言如何在数字前自动补0
- 网络通信——客户端服务器端交互