免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11032 | 回复: 14

忘记mysql密码 的可以用的方法 [复制链接]

论坛徽章:
0
发表于 2010-06-12 19:16 |显示全部楼层
本帖最后由 liyihongcug 于 2010-06-12 19:18 编辑

忘记MySQL ROOT密码是在MySQL使用中很常见的问题,可是有很多朋友并不会重置ROOT密码,那叫苦啊,我有深有感触,特写此文章与大家交流:

1、编辑MySQL配置文件:

windows环境中:%MySQL_installdir%\my.ini //一般在MySQL安装目录下有my.ini即MySQL的配置文件。
linux环境中:/etc/my.cnf

在[MySQLd]配置段添加如下一行:
skip-grant-tables

保存退出编辑。

2、然后重启MySQL服务

windows环境中:
net stop MySQL
net start MySQL

linux环境中:
/etc/init.d/MySQLd restart

3、设置新的ROOT密码

然后再在命令行下执行:
MySQL -uroot -p MySQL
直接回车无需密码即可进入数据库了。

现在我们执行如下语句把root密码更新为 7758521:
update user set password=PASSWORD("7758521") where user='root';

quit 退出MySQL。

4、还原配置文件并重启服务

然后修改MySQL配置文件把刚才添加的那一行删除。

再次重起MySQL服务,密码修改完毕。

修改完毕。

用新密码7758521试一下吧,又能登入MySQL的感觉就是不一样吧?



方法一:single mode

   1. 在 GRUB 选择界面的时候,按 e
   2. 找到这一行【kernel /vmlinuz-2.xxxxxxx ro root=/dev/hda2】按 e
   3. 在这一行最后加上 single(要留一个空格再加 single),加完之后按【Enter】跳出
   4. 按 b ,开机之后会出现 sh-2.05#
   5. 输入 passwd root ,修改root密码
   6. 改完之后输入 reboot 重新启动机器即可

方法二:another single mode

   1. 在 GRUB 选择界面的时候,按 a
   2. 然后在命令列最后加入 -s(要留一个空格再加 -s),加完之后按【Enter】就会重新开机

grub append> ro root=/dev/xxxx -s

   3. 开机之后会出现 sh-2.05#
   4. 输入 passwd root ,修改root密码
   5. 改完之后输入 reboot 重新启动机器即可

方法三:rescue mode(当 / partition 有问题,连 single mode 都进不去的时候用的方法)

   1. 用 Red Hat Linux 的第一张光碟开机
   2. 在出现 boot: 的时候输入 linux rescue
      boot:linux rescue
   3. 【OK】-->【OK】-->【Continue】-->【OK】
      //反正就是一直按 Enter 直到出現 sh-2.05a#
   4. 输入 chroot /mnt/sysimage 取得 root 权限
      sh-2.05a#chroot /mnt/sysimage
   5. 输入 passwd root ,修改root密码
   6. 改完之后输入 reboot 重新启动机器即可

(责任编辑:麦田守望者)mysql>UPDATE user SET password=PASSWORD(’root’) WHERE User=’root’ and Host='localhost';
mysql>FLUSH PRIVILEGES;

论坛徽章:
0
发表于 2010-06-12 19:53 |显示全部楼层
1)错误类型:Starting MySQLCouldn''t find MySQL manager or server
   使用命令:mv /etc/my.cnf /etc/my.cnf.old
2)错误类型:warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
             error : failed denpendecies:
             Mysql conflicts with mysql-4.1.7-4.RHEL4.1.i386
   使用命令:rpm -Uvh MySQL-server-4.1.22-0.i386.rpm --nodeps --force
3)查询mysql位置,whereis mysql
4)mysql 创建用户方法

命令方式的.注意每行后边都跟个 ; 表示一个命令语句结束.
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例子:grant select,insert,update,delete on TSF.* to TSFadmin@10.90.10.200 identified by "hzalcatel";
所有权限:all privileges
本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/9820.htm

grant all privileges on TSF.* to TSFadmin@10.90.10.200 identified by "hzalcatel";

flush privileges;


[Linux随笔]Can’t connect to local MySQL server through socket 解决办法
chcn 发布于 2007-05-20 00:56

Tags: -



启动mysql 报错:

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

1、先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.
另外看看是不是权限问题.

2、确定你的mysql.sock是不是在那个位置,
mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock

3、试试:service mysqld start

4、如果是权限问题,则先改变权限 #chown -R mysql:mysql /var/lib/mysql

[root@localhost ~]# /etc/init.d/mysqld start
启动 MySQL: [ 确定 ]
[root@localhost ~]# mysql -uroot -p



ERROR 2002 (HY000): Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock'' (2)
   原因是,/var/lib/mysql 的访问权限问题。

shell> chown -R mysql:mysql /var/lib/mysql

接着启动服务器

shell> /etc/init.d/mysql start

服务器正常启动后察看 /var/lib/mysql 自动生成mysql.sock文件。

但是我的问题仍然没有得到解决。

问题终于解决:
方法:    修改/etc/my.conf:
[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/usr/local/mysql


If there is not currently a section called [client], add one at the bottom of the file and copy the socket= line under the [mysqld] section such as:



[client]
socket=/var/lib/mysql/mysql.sock

发现依旧如此,运行/etc/init.d/mysql start报错:    Starting MySQLCouldn''t find MySQL manager or server
是mysqld服务没启,运行/usr/local/mysql/bin/mysqld_safe &

问题解决。

论坛徽章:
0
发表于 2010-08-03 16:18 |显示全部楼层
有人提供的
如果是默认安装还好说。

不默认安装就这样

/usr/local/mysql-5.1.48/bin/mysqld_safe --defaults-file=/data/mysql/3306/my.cnf --basedir=/usr/local/mysql-5.1.48 --datadir=/data/mysql/3306/data --user=mysql  --skip-grant-tables&


手动连接一下
ln -s /data/mysql/3306/mysql.sock /tmp/mysql.sock

而后有两种方法:
1、
进入mysql后,使用
update user set Password=password('newpassword') where User='root';
flush privileges;

2、使用mysqladmin来改。
mysqladmin -S /data/mysql/3306/mysql.sock -uroot -p PASSWORD 'abc'

再kill `cat /data/mysql/3306/mysql.pid`

同时要注意mysql启动脚本中有无写死mysql的root密码

论坛徽章:
0
发表于 2010-08-03 16:22 |显示全部楼层
感谢楼主分享。

论坛徽章:
0
发表于 2010-08-19 14:14 |显示全部楼层
一、关闭MySQL
#pkill mysql

二、使用跳过权限检查的方式启动MySQL
#mysqld_safe --skip-grant-tables &

三、使用空密码登录MySQL
#mysql -u root

四、设置MySQL的root密码
>update mysql.user set password=PASSWORD('newpassword') where User='root';
>flush privileges;
>quit

五、使用新设置密码登录MySQL
#pkill mysql
#mysqld_safe --user=mysql &
#mysql -uroot -pnewpassword

论坛徽章:
0
发表于 2011-01-07 15:35 |显示全部楼层
mysql忘记root密码的解决

一. MySQL密码的恢复方法之一
如果忘记了MySQL的root密码,可以用以下方法重新设置:
1. KILL掉系统里的MySQL进程;
killall -TERM mysqld
2. 用以下命令启动MySQL,以不检查权限的方式启动;
safe_mysqld --skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD('新密码') where User='root';
mysql> flush privileges;
mysql> quit
重新启动MySQL,就可以使用新密码登录了。
二. MySQL密码的恢复方法二
有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复
1. 停止mysqld;
  sudo /etc/init.d/mysql stop
(您可能有其它的方法,总之停止mysqld的运行就可以了)
2. 用以下命令启动MySQL,以不检查权限的方式启动;
mysqld --skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD('newpassword') where User='root';
mysql> flush privileges;
mysql> quit
重新启动MySQL
/etc/init.d/mysql restart
就可以使用新密码 newpassword 登录了。
(完)

论坛徽章:
0
发表于 2011-01-07 16:03 |显示全部楼层
MySQL根用户root密码忘记后的处理方法
http://www.sina.com.cn 2008年04月25日 08:15  赛迪网

  作者:Alice

  【赛迪网-IT技术报道】MySQL根用户root密码忘记后的处理方法:

  Windows平台下的步骤

  1.以管理员的身份登录到windows系统

  2.用windows服务管理工具或任务管理器来停止MySQL服务

  3.建立一个单行的文本文件,保存为c:\mysql\pwdhf.txt,

  内容是SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

  4.打开一个控制台窗口,得到DOS命令提示符

  5.假设你的MySQL主目录是C:/mysql/bin,

  则运行c:\mysql\bin\mysqld-nt --init-file=c:\mysql\pwdhf.txt,

  如果是用安装精灵安装的MySQL数据库服务器,则需要通过服务管理工具来做改动,

  需要找到并添加默认设置文件,

  然后运行mysqld-nt --defaults-file="path\my.ini" --init-file=c:\mysql\pwdhf.txt

  6.停止MySQL数据库服务,然后再重新以正常模式启动MYSQL

  7.可以正常登录到服务器.

  Unix环境下的步骤

  1.以root或启动mysqld进程的用户身份登录到系统

  2.找到并定位包含Mysql服务进程号的文件.pid,该文件一般可能

  /var/lib/mysql/,/var/run/mysqld/,/usr/local/mysql/data/中,

  文件名一般是“机器名.pid”的格式。在壳下使用命令

  kill 'cat /mysql-data-directory//host-name.pid'来结束mysql服务进程

  3.建立一个单行文本文件,可以任意命名,假设是mysql-init,

  保存在用户主目录~下就可以,

  文件内容是SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

  4.重新带选项启动mysql,具体命令为mysqld_safe --init-file=~/mysql-init &,

  正常后应该删除mysql-init文件

  5.可以用新密码连接数据库。

  通用的解决办法:

  -使用客户端交互工具mysql来设置,步骤如下:

  1.停止mysql服务,并重新以--skip-grand-table --user=root

  选项来启动mysql服务(windows下可以省略--user=root选项)

  2.用客户端交互工具mysql连接服务器,shell>mysql -u root

  3.在客户端交互工具mysql中执行下列语句:

  mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')

  -> WHERE User='root';

  mysql> FLUSH PRIVILEGES;

  4.可以用newpwd作为密码来登录服务器。(责任编辑:卢兆林)

论坛徽章:
0
发表于 2011-01-08 10:00 |显示全部楼层
本帖最后由 liyihongcug 于 2011-01-09 21:21 编辑

$bindir/mysqld_safe --skip-grant-tables --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &


linux忘记mysql密码找回方法
[ 来源:侠客站长站 | 作者:编辑整理 | 时间:2011-01-03 | 我要投稿 | 发表评论 ]

方法一:

# /etc/init.d/mysqld stop

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# mysql -u root mysql

mysql> update user set password=password('newpassword') where user='root';

mysql> flush privileges;

mysql> quit

# /etc/init.d/mysql restart

# mysql -uroot -p

enter password: <输入新设的密码newpassword>

mysql>

方法二:

直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:

# mysql -udebian-sys-maint -p

enter password: <输入[client]节的密码>

mysql> update user set password=password('newpassword') where user='root';

mysql> flush privileges;

mysql> quit

# mysql -uroot -p

enter password: <输入新设的密码newpassword>

mysql>

方法三:

这种方法我没有进行过测试,因为我的root用户默认密码已经被我修改过了,那位有空测试一下,把结果告诉我,谢谢!!

# mysql -uroot -p

enter password: <输入/etc/mysql/debian.cnf文件中[client]节提供的密码>

方法四:

方法如下: 1, 关闭mysql服务 /etc/init.d/mysqld stop 2,使用 –skip-grant-tables选项启动mysql服务,可以修 改/etc/inin.d/mysqld脚本启动位置增加此选项, vi /etc/init.d/mysqld

方法如下:

1, 关闭mysql服务

/etc/init.d/mysqld stop

2,使用 –skip-grant-tables选项启动mysql服务,可以修 改/etc/inin.d/mysqld脚本启动位置增加此选项,

vi /etc/init.d/mysqld

在下面运行启动的语句里增加--skip-grant-tables

/usr/bin/mysqld_safe --skip-grant-tables --datadir="$datadir" --socket="$socketfile"

--log-error="$errlogfile" --pid-file="$mypidfile"

加入--skip-grant-tables的意思是启动mysql服务的时候跳 过权限表认证。启动后,连接到mysql的root不需要口令

3,重新启动mysql服务

/etc/init.d/mysqld start

4. 修改root用户的密码;

mysql> update mysql.user set password=password('123456') where user=root;

mysql> flush privileges;

mysql> quit

5. 重新启动mysql,就可以使用 新密码登录了。

mysql

mysql -u root –p

输入密码:123456

6,关闭mysql服务

/etc/init.d/mysqld stop

7, 重新修改第2步修改的/etc/init.d/mysqld,使其保持原来不变,也就是取消--skip-grant-tables语句

8,重新 启动mysql服务

/etc/init.d/mysqld start

unix

论坛徽章:
0
发表于 2011-01-09 16:19 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2011-01-09 21:20 |显示全部楼层
本帖最后由 liyihongcug 于 2011-08-24 14:58 编辑

http://www.kingsnet.biz/Article/database/mysql/200804/8198_4.html
http://tech.16c.cn/mysql/200904144623.html
你的MYSQL数据库的ROOT超级用户密码是不是丢失了呢?不要着急,今天我就来较你找会你的root密码。

首先,结束掉mysql的服务进程。
         在windows下面一是可以通过任务管理器来结束掉,应该是mysql-nt.exe。二是,如果你的mysql注册为服务的话,可以到服务里面把他先停掉。
         在linux或者unix下面直接kill mysql的服务进程就可以。
然后,再用 --skip-grant-tables 选项启动mysql服务。
          在windows下面,到mysql安装目录的bin目录下面运行:mysql-nt --skip-grant-tables 就可以启动mysql服务,这样就可以在无密码的状态下进入mysql用mysql -uroot -p
          在linux下面 一般mysql服务器目录在:/usr/bin/safe_mysqld --skip-grant-tables,执行就可以启动了。
          在Freebsd下面,在/usr/local/etc/rc.d/mysql-server --skip-grant-tables ,执行启动。
          其他的Unix系统没有研究过。呵呵。
进入mysql以后,执行一下语句:
          use mysql
          update user set password=password(\"new_pass\") where user=\"root\";
          flush privileges;
最后结束掉现在的mysql服务进程,重新启动你的mysql,就可以用你设置的密码登录

From: http://tech.ccidnet.com/art/1108/20071224/1319005_1.html
首先,我们需要结束掉mysql的服务进程。

然后在windows下面一是可以通过任务管理器来结束掉,应该是mysql-nt.exe。二是,如果你的mysql注册为服务的话,可以到服务里面把他先停掉。

在linux或者unix下面直接kill mysql的服务进程就可以。

然后,再用 --skip-grant-tables 选项启动mysql服务。

在windows下面,到mysql安装目录的bin目录下面运行:mysql-nt --skip-grant-tables 就可以启动mysql服务,这样就可以在无密码的状态下进入mysql用mysql -uroot -p

在linux下面 一般mysql服务器目录在:/usr/bin/safe_mysqld --skip-grant-tables,执行就可以启动了。

在Freebsd下面,在/usr/local/etc/rc.d/mysql-server --skip-grant-tables ,执行启动。

其他的Unix系统没有研究过。呵呵。

进入mysql以后,执行一下语句:


use mysql
update user set password=password("new_pass") where user="root";
flush privileges;


最后结我们来结束现在的mysql服务进程,重新启动你的mysql,就可以用你设置的密码登录了。

http://liudaoru.iteye.com/blog/151057
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时9.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP