Fork me on GitHub

【转】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的密码改成空密码了,记住命令后面的分号。

posted @ 2011-07-30 19:12  _落雨  阅读(181)  评论(0编辑  收藏  举报