MySQL修改密码方法总结

1.修改root用户的的口令 
缺省情况下MySQL没有设置密码,我们可以用三种方法设置密码头: 
*   用mysqladmin命令来改root用户口令 

# mysqladmin –u root password 54netseek //设置MySQL管理操作用户root的密码为52netseek 

*   用set password修改口令: 
mysql> set password for root@localhost=password(’54netseek); 注意分号的作用是结束 

*   直接修改user表的root用户口令     
mysql> use mysql; 
mysql> update user set password=password(’54netseek’) where user=’root’; 
mysql> flush privileges; 

还可以使用下面的方法: 
Mysql –prompt –u root –p mysql 
Mysql>set password for root@localhost=password(‘’); 
即可把root的密码设置为空,注意单引号和分号的用法 

2.删除默认的数据库和用户 
我们的数据库是在本地,并且也只需要本地的php脚本对mysql进行读取,所以很多用户不需要。mysql初始化后会自动生成空用户和test库,这会对数据库构成威胁,我们全部删除。 我们使用mysql客户端程序连接到本地的mysql服务器后出现如下提示: 
mysql> drop database test; 
mysql> use mysql; 
mysql> delete from db; 
mysql> delete from user where not(host=”localhost” and user=”root”); 
mysql> flush privileges; 

3. 改变默认mysql管理员的名称 //仅为建议 
根据个人习惯,因为默认的mysql的管理员名称是root,所以如果能够修改的话,能够防止一些脚本小子对系统的穷举。我们可以直接修改数据库,把root用户改为”admin” 
mysql> use mysql; 
mysql> update user set user=”admin” where user=”root”; 
mysql> flush privileges; 

4. 提高本地安全性 
提高本地安全性,主要是防止mysql对本地文件的存取,比如黑客通过mysql把 /etc/passwd获取了,会对系统构成威胁。mysql对本地文件的存取是通过SQL语句来实现,主要是通过Load DATA LOCAL INFILE来实现,我们能够通过禁用该功能来防止黑客通过SQL注射等获取系统核心文件。 禁用该功能必须在 my.cnf 的[mysqld]部分加上一个参数: 
set-variable=local-infile=0 

5. 忘记mysql密码的解决办法 
如果不慎忘记了MySQL的root密码,我们可以在启动MySQL服务器时加上参数–skip- grant-tables来跳过授权表的验证 (./safe_mysqld –skip-grant-tables &),这样我们就可以直接登陆MySQL服务器,然后再修改root用户的口令,重启MySQL就可以用新口令登陆了。 

6,MySql密码知道,但是用MySql-Front连接不上去 
   有这样一套连接MySql数据库的系统,只要改了root的密码,用MySql-Front连接就连接不上去了,这时要是想改密码的话就要使用这种方法 了,在安装MySql数据库的时候,如果选择支持Command Line的话,那么现在来修改密码的时候就从“开始”–“程序”–”MySQL”–Command Line Client,使用 
mysql> use mysql; 
mysql> update user set password=password(’ ‘) where user=”root”; 
mysql> flush privileges; 
这样就把root的密码改成空密码了,记住命令后面的分号。


参考资料: http://hi.baidu.com/%D6%F0%C4%BE/blog/item/d459a6df7f14151b485403c5.html




首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的, 

所以一般用户无法更改密码,除非请求管理员。 


方法一 

使用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(\'biscuit\')); 

mysql> FLUSH PRIVILEGES 

确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。 

在《mysql中文参考手册》里有这个例子,所以我也就写出来了。 

注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。 


方法四 

和方法三一样,只是使用了REPLACE语句 

mysql> REPLACE INTO mysql.user (Host,User,Password) 

VALUES(\'%\',\'jeffrey\',PASSWORD(\'biscuit\')); 

mysql> FLUSH PRIVILEGES 


方法五 

使用SET PASSWORD语句, 

mysql> SET PASSWORD FOR jeffrey@\"%\" = PASSWORD(\'biscuit\'); 

你也必须使用PASSWORD()函数, 

但是不需要使用FLUSH PRIVILEGES。 



方法六 

使用GRANT ... IDENTIFIED BY语句 

mysql> GRANT USAGE ON *.* TO jeffrey@\"%\" IDENTIFIED BY \'biscuit\'; 

这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。 



注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。


参考资料: http://wenku.baidu.com/view/8fa2283567ec102de2bd89fb.html

你可能感兴趣的:(sql,mysql,PHP,SQL Server,脚本)