mysql数据库登录设置密码的问题
前提
1.mysql5.7 的 user表的密码字段从 password 变成了 authentication_string
2.mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。
设置密码的方式:
在前提1的mysql版本中:
(1)vi /etc/my.cnf 编辑my.cnf文件 (i :进入编辑 Esc键:退出编辑 :wq:保存并退出)
(2)插入 skip-grant-tables 【进入数据库跳过密码验证】
(3)service mysqld restart 【重启数据库】
(4)mysql 【不是使用密码进入数据库】
(5)use mysql 【进入名字叫:mysql的database】
(6)update user set authentication_string=password(‘新密码’ ) where user=‘root’; 【执行成功后退出】
(7)vi /etc/my.cnf 【在 skip-grant-tables 前加# ,注释掉该命令】
(8)service mysqld restart
(9)mysql -u root -p
(10) 输入新设置的密码;登录成功。
在前提2的mysql版本中:(注:如果root用户没有设置密码,并且my.cnf文件中没有 skip-grant-tables 或已注释,可从第(9)步开始)
(1)vi /etc/my.cnf 编辑my.cnf文件 (i :进入编辑 Esc键:退出编辑 :wq:保存并退出)
(2)插入 skip-grant-tables 【进入数据库跳过密码验证】
(3)service mysqld restart 【重启数据库】
(4)mysql 【不是使用密码进入数据库】
(5)use mysql 【进入名字叫:mysql的database】
(6)update user set authentication_string=’’ where user=‘root’; 【把密码设置成空,执行成功后退出数据库】
(7)vi /etc/my.cnf 【在 skip-grant-tables 前加# ,注释掉该命令】
(8)service mysqld restart
(9)mysql -u root -p
(10)因为没有密码,直接回车。
(11)use mysql 【进入名字叫:mysql的database】
(12)ALTER user ‘root’@‘localhost’ IDENTIFIED BY ‘新设置的密码’;【修改新密码,执行成功后退出数据库】
(13)mysql -u root -p
(14) 输入新设置的密码;登录成功。