除此之外,还可以修改MySQL的配置文件/etc/mysql/my.cnf,在[mysqld]的部分中加上一句:skip-grant-tables。但是,使用这种方式在重置完密码后,还要再重新删除这句话。D瓜哥个人感觉比较麻烦。仅做了解,不推荐使用这种方式。
3.登录数据库。命令如下:
复制代码 代码如下:
mysql -uroot
4.切换到mysql数据库
复制代码 代码如下:
mysql> use mysql
5.修改root帐号密码
复制代码 代码如下:
mysql> update user set password=password('123456') where user='root';
6.退出,然后重启数据库
复制代码 代码如下:
>sudo service mysql restart
现在,应该就可以使用新密码正常访问数据库了。
ERROR 2002 (HY000)错误的原因以及解决办法
在登录数据库的过程中,可能遇到如下错误:
复制代码 代码如下:
mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
刚开始,D瓜哥以为是数据库没有正确创建mysqld.sock这个文件,到/var/run/mysqld/下查看了一下,确实没有这个文件。
这是怎么回事?怎么会没有这个文件呢?难道数据库没有启动起来。使用如下命令查看一下:
复制代码 代码如下:
>ps aux | grep mysql
Shit,竟然什么都没有输出。看来确实是数据库没有启动起来。使用如下命令启动数据库:
复制代码 代码如下:
>sudo service mysql start
如果是需要启动跳过认证的方式启动,则使用如下命令之一:
复制代码 代码如下:
sudo mysqld_safe --skip-grant-tables &
如果提示没有mysqld_safe,则使用如下命令:
复制代码 代码如下:
>sudo mysqld --skip-grant-tables &
然后就可以正常登录了。