目录
1、初始密码过期问题处理(或密码忘记的情况)
(1)编辑my.cnf中跳过权限表(skip-grant-tables)
[root@mysql51 mysql]# vi /mysql/data/3306/my.cnf
[mysqld] ########basic settings######## skip-grant-tables server-id=3306
(2)需要重启数据库(登录使用,但二进制默认自动连接到/tmp/mysql.sock)
报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[root@mysql51 mysql]# mysql -uroot -p
--解决方法1:更改sock连接,软连接
[root@mysql51 3306]# ln -s /mysql/data/3306/mysql.sock /tmp
--解决方法2:指定当前实例sock路径
[root@mysql51 3306]# mysql -uroot -p -S /mysql/data/3306/mysql.sock
(3)修改密码为不过期
mysql> use mysql mysql> update user set password_expired='N' where user='root'; mysql> flush privileges;
(4)修改密码:
FLUSH PRIVILEGES; alter user 'root'@'localhost' IDENTIFIED BY 'rootroot';
其他方法:此方法不可以用,报错。
UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’ ;
(5)删除掉my.cnf中的skip-grant-tables,重启数据库并重新进入(此时需要输入密码才可以进入)
mysql -uroot -prootroot
2、修改密码(知道密码)
(1)方法1:set命令
mysql>use mysql mysql>set password=PASSWORD('rootroot');
其他修改密码方法:https://www.topunix.com/post-8891.html
(2)方法2:使用mysql命令
>set password for root@localhost=password('rootroot');
(3)使用mysqladmin
#mysqladmin -uroot -pOLkib?1Y!ow0 password rootroot
(4)修改密码表
步骤 1):输入命令mysql -u root -p指定 root 用户登录 MySQL,输入后按回车键输入密码。如果没有配置环境变量,请在 MySQL 的 bin 目录下登录操作。 步骤 2):输入use mysql;命令连接权限数据库。 步骤 3):输入命令update mysql.user set authentication_string=password('新密码') where user='用户名' and Host ='localhost';设置新密码。 步骤 4):输入 flush privileges; 命令刷新权限。 步骤 5):输入quit;命令退出 MySQL 重新登录,此时密码已经修改为刚才输入的新密码了。