linux 下忘记 mysql root 用户密码
这种情况虽然很少发生。但如真的发生了此方法就很有用。
对于粗心的人,也有可能要用到此方法。
举个例子
众所周知,mysql 数据库众的 user 表记录了数据的信息,包括用户名和密码等。其中的密码是使用 mysql 自带的 password()
函数加密的。
若要修改 root 用户的密码,你可以
mysql> update user set password=password('密码') where user='root';
上面说了,粗心的话有可能写成这样
mysql> update user set password=('密码') where user='root';
这样导致什么后果?
好,进入正题。
如果 MySQL 正在运行,首先杀之: killall mysqld
启动 MySQL :/usr/bin/safe_mysqld --skip-grant-tables
就可以不需要密码就进入 MySQL 了。
如果执行 /usr/bin/safe_mysqld --skip-grant-tables 时提示找不到这个命令
这个时候你必须找出它的正确路径:
find / noleaf -name mysqld-safe
进入路径,执行 --skip-grant-tables 即可
OK,看到
Starting mysqld deamon .... 界面了
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
------------------------
搞掂。
导入 .sql 文件(超大的)
mysql -u root -p dbname < data.sql (当前目录下)
对于粗心的人,也有可能要用到此方法。
举个例子
众所周知,mysql 数据库众的 user 表记录了数据的信息,包括用户名和密码等。其中的密码是使用 mysql 自带的 password()
函数加密的。
若要修改 root 用户的密码,你可以
mysql> update user set password=password('密码') where user='root';
上面说了,粗心的话有可能写成这样
mysql> update user set password=('密码') where user='root';
这样导致什么后果?
好,进入正题。
如果 MySQL 正在运行,首先杀之: killall mysqld
启动 MySQL :/usr/bin/safe_mysqld --skip-grant-tables
就可以不需要密码就进入 MySQL 了。
如果执行 /usr/bin/safe_mysqld --skip-grant-tables 时提示找不到这个命令
这个时候你必须找出它的正确路径:
find / noleaf -name mysqld-safe
进入路径,执行 --skip-grant-tables 即可
OK,看到
Starting mysqld deamon .... 界面了
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
------------------------
搞掂。
导入 .sql 文件(超大的)
mysql -u root -p dbname < data.sql (当前目录下)
浙公网安备 33010602011771号