MySQL基础1--如何改MySQL密码

来源:互联网 发布:优化旅客列车编组 编辑:程序博客网 时间:2024/05/21 00:53

 方法一

1、编辑MySQL的配置文件:my.ini

一般在MySQL安装目录下有my.ini即MySQL的配置文件。

在此配置文件的最后添加如下一行:

skip-grant-tables

保存退出编辑。

 

2、然后重启MySQL服务

在命令行下执行:

net stop MySQL

net start MySQL

 

3、设置新的ROOT密码

然后再在命令行下执行:

MySQL -u root -p MySQL或mysql -u root -p

直接回车无需密码即可进入数据库了。

此时,在命令行下执行 use mysql;

现在我们执行如下语句把root密码更新为:

update user setpassword=PASSWORD("root") where user='root';

(注意:此时不用使用mysqladmin -u root -p password '你的新密码'这条命令修改密码,因为'skip-grant-tables'配置,

不信的话,你可以试用一下,它肯定会报如下所示的错误:

F:\Documents andSettings\long>mysqladmin -u root -p password 'root'

Enter password:

Warning: single quotes were not trimmedfrom the password by your command

line client, as you might have expected.

mysqladmin:

You cannot use 'password' command as mysqldruns

 withgrant tables disabled (was started with --skip-grant-tables).

Use: "mysqladmin flush-privilegespassword '*'" instead)

exit 退出MySQL。

 

4、还原配置文件并重启服务

 

然后修改MySQL配置文件把刚才添加的那一行'skip-grant-tables'删除。

再次重起MySQL服务,密码修改完毕。

用新密码root试一下吧,又能登入重新进入mysql了?

 

方法二:

 不使用修改my.ini重启服务的方法,通过非服务方式加skip-grant-tables运行mysql来修改mysql密码

 停止mysql服务

 打开命令行窗口,在bin目录下使用mysqld-nt.exe启动,即在命令行窗口执行: mysqld-nt --skip-grant-tables

 然后另外打开一个命令行窗口,登录mysql,此时无需输入mysql密码即可进入。

 按以上方法修改好密码后,关闭命令行运行mysql的那个窗口,此时即关闭了mysql,如果发现mysql仍在运行的话可以结束掉对应进程来关闭。

 启动mysql服务

 

mysql修改密码的一些方法:

1. 用MYSQL的grant语句,例如

mysql -h hostname –u root 命令登录到mysqld server 用grant 命令改变口令:

mysql -h 192.168.1.101 -u root

上边的192.168.1.101 是偶的mysqld 运行机器,你换成自己的,这样登录上去,就可以修改密码了,

其实没必要这么麻烦,直接mysql -u root就可以了。

GRANT ALL ON *.* TO 'root'@'localhost'IDENTIFIED BY 'root' WITH GRANT OPTION

 

2.mysqladmin -u 用户名 -p 旧密码 password 新密码

例1:给root 加个密码root。首先进入cmd中,然后键入

以下命令,至于在CMD下能否使用mysqladmin,

就要看你的Windows环境变量PATH中是否添加“E:\Program Files\MySQL\MySQL Server 5.1\bin;”(请改为你自己的安装路径)了。)

mysqladmin -u root password root

注:因为开始时root 没有密码,所以-p 旧密码一项就可以省略了。

例2:再将root 的密码改为admin。

mysqladmin –u root -proot password admin(注意-p 不要和后面的密码分

开写,要写在一起,不然会出错,错误如下所示:

F:\Documents andSettings\long>mysqladmin -u root -p root password admin

Enter password: ****

mysqladmin: Unknown command: 'root')

当然你也可以这样写:mysqladmin –u root -p password admin回车,

然后再输入你的旧密码,这样也是完全也可以的,看你的爱好了.

例3:再将root用户的密码去掉.

F:\Documents andSettings\long>mysqladmin -u root -p password ;

Enter password: root

此时,root用户又没有密码了.可以通过下面的方法设置:

F:\Documents and Settings\long>mysql -uroot

mysql>set password for'root'@'localhost'=password('root');(语法:SET PASSWORD FOR '用户名'@'主机' = PASSWORD('密码'))

mysql>set password for'root'@'%'=password('root');

//本条可选,这是在配置mysql数据库,如果你选择了允许root通过远程登录进来时,你在mysql数据库下的user表中,

use mysql;

select * from user;可以看到有两条记录,如果你没有配置这一项的话,只会第一条记录!

Host                    User     Password

'localhost', 'root','*9C9F4927129ECC3209D8550DC8B67156FDBF9418', ...

'%', 'root','*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B', ...

通过以上设置,root的密码将变为root这样就完成了根用户root密码的设置工作。

 

3. use mysql;

 update user set password =password('yourpass')where user='root'

 

方法4

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

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

mysql> FLUSH PRIVILEGES

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

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

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

 

方法5

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

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

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

mysql> FLUSH PRIVILEGES

 

方法6

使用SET PASSWORD语句,

mysql> SET PASSWORD FORjeffrey@"%" = PASSWORD('biscuit');

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

但是不需要使用FLUSH PRIVILEGES。

 

方法7

使用GRANT ... IDENTIFIED BY语句

mysql> GRANT USAGE ON *.* TOjeffrey@"%" IDENTIFIED BY 'biscuit';

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

注:mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,

否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。

 

1.utf8utf-8区别?

总结:【只有在MySQL中可以使用“utf-8”的别名“utf8”,但是在其他地方一律使用大写“UTF-8”。】

具体为:在命令“mysql_query(set names utf8)”外一律用大写“UTF-8”。

做好自己的事情:本分。不能因为其他的事情而忘记了自己的本分。

2.显示数据库中字符的编码格式?

show variables like 'character%';

3.退出?

exit

quit

q;

4DOS中打开服务:Services.msc

 

0 0
原创粉丝点击