首页 > 代码库 > mysql关于用户密码的设置( 修改、重置、找回)

mysql关于用户密码的设置( 修改、重置、找回)


1.登录mysql

1.1单实例登录

1) mysql     刚装完mysql无密码情况下登录

2) mysql–u root   刚装完mysql无密码情况下登录 

3) mysql–u root –p   标准的dba登录

3) mysql–u root –p ‘密码’  无交互登录。一般不用,容易泄漏密码

登录成功后 提示:mysql>

1.2 多实例登录

        mysql –u root –S 指定mysql.sock文件的位置

        提示:和单实例唯一的区别是多实例需要指定mysql.sock的位置

2.修改用户密码

1.1交互式修改root密码


    • 单实例:mysqladmin–u root –p password ‘新密码’

[root@Mysql ~]# mysqladmin -u root -p password ‘jeck123‘
        Enter password:           ----->输入旧密码

    • 多实例:mysqladmin –u root –p password ‘新密码’  -S mysql.sock的位置

[root@Mysql ~]# mysqladmin -u root -p password ‘jeck123‘ -S/usr/local/mysql/tmp/mysql.sock 
    Enter password:          ----->输入旧密码

        注意:若刚装完mysql,则root密码为空,直接回车即可

1.2非交互式修改root密码


    • 单实例:mysqladmin –u root –p‘旧密码’  password  ‘新密码’(注意-p后面无空格)

[root@Mysql ~]# mysqladmin -uroot -p‘jeck123‘ password ‘123jeck‘

    • 多实例:mysqladmin –u root –p‘旧密码’  password  ‘新密码’  -S mysql.sock的位置

[root@Mysql ~]# mysqladmin -uroot -p‘jeck123‘ password ‘123jeck‘-S /usr/local/mysql/tmp/mysql.sock

    这种用于非交互式修改密码,适用于脚本

1.3在mysql数据库中修改密码

方法一:(只能修改当前登录mysql用户的密码)

[root@Mysql ~]# mysql -uroot -p123jeck
Welcometo the MySQL monitor.  Commands end with; or \g.
YourMySQL connection id is 4
Serverversion: 5.1.56-log Source distribution
Copyright(c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Thissoftware comes with ABSOLUTELY NO WARRANTY. This is free software,
andyou are welcome to modify and redistribute it under the GPL v2 license
Type‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> setpassword=password(‘456jeck‘); 
Query OK, 0 rows affected (0.00 sec)
mysql> flushprivileges;

Query OK, 0 rows affected (0.00 sec)
mysql> exit

方法二:(可以修改任意用户的密码,只要有修改权限)

[root@Mysql ~]# mysql -uroot -p456jeck
Welcometo the MySQL monitor.  Commands end with; or \g.
YourMySQL connection id is 6
Serverversion: 5.1.56-log Source distribution
Copyright(c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Thissoftware comes with ABSOLUTELY NO WARRANTY. This is free software,
andyou are welcome to modify and redistribute it under the GPL v2 license
Type‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> updatemysql.user set password=PASSWORD(‘789jeck‘) where user=‘root‘;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed:3  Warnings: 0

mysql> flushprivileges;
Query OK, 0 rows affected (0.00 sec)
mysql>

3.找回用户密码

3.1关闭mysql

[root@Mysql~]# service mysqld stop
Shuttingdown MySQL. SUCCESS!
[root@Mysql ~]# netstat -lnt | grep mysqld

3.2用mysqld_safe启动mysql,需要加—skip-grant-tables(忽略授权验证)

单实例:

[root@Mysql~]# /usr/local/mysql/bin/mysqld_safe--skip-grant-tables &   --->加&,使进程在后台运行
[1]28643
15010315:56:25 mysqld_safe Logging to ‘/usr/local/mysql-5.1.56/data/Mysql.err‘.
15010315:56:25 mysqld_safe Starting mysqld daemon with databases from/usr/local/mysql-5.1.56/data

[root@Mysql ~]# mysql -uroot -p
Enter password:              ---->直接回车,因为已经忽略验证

Welcometo the MySQL monitor.  Commands end with; or \g.
YourMySQL connection id is 1
Serverversion: 5.1.56-log Source distribution
Copyright(c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Thissoftware comes with ABSOLUTELY NO WARRANTY. This is free software,
andyou are welcome to modify and redistribute it under the GPL v2 license
Type‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> setpassword=password(‘jeck123‘);            --->此方法不行
ERROR 1290 (HY000): The MySQL server is running with the--skip-grant-tables option so it cannot execute this statement

mysql> updatemysql.user set password=PASSWORD(‘jeck123‘) where user=‘root‘;   
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed:3  Warnings: 0

mysql> flushprivileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

多实例:

[root@Mysql~]# /usr/local/mysql/bin/mysqld_safe--defaults-file=/etc/my.cnf --skip-grant-tables &
[1]28643
15010315:56:25 mysqld_safe Logging to ‘/usr/local/mysql-5.1.56/data/Mysql.err‘.
15010315:56:25 mysqld_safe Starting mysqld daemon with databases from/usr/local/mysql-5.1.56/data

[root@Mysql ~]# mysql -uroot -p   -S/usr/local/mysql/tmp/mysql.sock  
Enter password:              ---->直接回车,因为已经忽略验证

Welcometo the MySQL monitor.  Commands end with; or \g.
YourMySQL connection id is 1
Serverversion: 5.1.56-log Source distribution
Copyright(c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Thissoftware comes with ABSOLUTELY NO WARRANTY. This is free software,
andyou are welcome to modify and redistribute it under the GPL v2 license
Type‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> updatemysql.user set password=PASSWORD(‘jeck123‘) where user=‘root‘;               ---->修改root密码   
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed:3  Warnings: 0

mysql> flushprivileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

3.3重新启动mysql(必须重新启动

[root@Mysql~]# service mysqld restart
Shuttingdown MySQL.150103 16:07:17 mysqld_safe mysqld from pid file/usr/local/mysql-5.1.56/data/Mysql.pid ended
 SUCCESS! 
StartingMySQL. SUCCESS! 
[1]+  Done                   /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

3.4用新修改的密码就可以登录了

[root@Mysql~]# mysql -uroot -pjeck123

Welcometo the MySQL monitor.  Commands end with; or \g.
YourMySQL connection id is 1
Serverversion: 5.1.56-log Source distribution
Copyright(c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Thissoftware comes with ABSOLUTELY NO WARRANTY. This is free software,
andyou are welcome to modify and redistribute it under the GPL v2 license
Type‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>


本文出自 “Study-Everyday” 博客,请务必保留此出处http://studys.blog.51cto.com/9736817/1599104

mysql关于用户密码的设置( 修改、重置、找回)