我们常常会忘记mysql用户名和密码,造成无法连接mysql数据库。
如果忘记的只是mysql的普通用户和密码 ,你可以通过以下三种方式修改:
以管理员身份进入mysql(mysql -u root -p password)
方式一 、
mysql>use mysql
mysql>update user set Password = password('Chenxing') where User = 'localhost';
mysql>flush privileges;
方式二、
mysql> insert into mysql.user (Host,User,Password) values('%','localhost',password('Chenxing'));
mysql> flush privileges;
方式三、
mysql> grant usage on *.* to localhost@"%" IDENTIFIED identified by 'Chenxing';
##不用password(),不用fush privileges;
需要注意的是mysql是通过主机(Host)、用户名(User)、密码(Passowrd)三个维度来识别身份的,不单单是用户名和密码,可以在mysql库中的user表查验。
如果忘记的是系统管理员(root)用户名和密码,你通过以下方式修改。
以下基于linux和unix平台的操作。
步骤一:停止mysql
kill `cat /data/mysqldata/3306/mysql.pid`
步骤二:以--skip-grant-tables 方式重启mysql(即跳过检查授权表)
mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf --skip-grant-tables --skip-networking&
步骤三:无需身份验证进入mysql,进入来的用户相当于root的用户
msyql
步骤四:用普通用户修改的方式修改密码,可采用上述的方式一
步骤五:正常关闭mysql重新启动
mysqladmin shutdown
mysqld_safe --defaults-file=/data/msyqldata/3306/my.cnf &;
系统管理员密码重置完毕,其核心是mysql启动时提供的--skip-grant-tables参数,可以跳过权限验证。然后进入mysql use表中进行密码重置。
以上就是mysql忘记用户名和密码的解决方案,应该是能够适用绝大多数人忘记mysql密码的情况。希望对你有所帮助。