请教mysql的root口令问题。

发表于:2007-07-04来源:作者:点击数: 标签:
1、我的机器上的mysql的root口令一直默认为空,可是,不知道让谁给改了,现在我的机器是 linux 9.0+mysql我有系统root的帐号怎么才能改回mysql的root口令。 2、我在做虚拟主机的时候看到了一些有关管理的软件(easyweb2.0 http://www.easyweb.com.cn )可以

1、我的机器上的mysql的root口令一直默认为空,可是,不知道让谁给改了,现在我的机器是linux9.0+mysql我有系统root的帐号怎么才能改回mysql的root口令。
    2、我在做虚拟主机的时候看到了一些有关管理的软件(easyweb2.0   http://www.easyweb.com.cn)可以很方便的管理虚拟主机和mysql数据库,请问谁有这类软件,能不能给一份,或给个连接,到哪能下载

 sakulagi 回复于:2003-12-17 14:27:46
【1】 man msqladmin

 xinyv 回复于:2003-12-17 14:40:02
我man了说,用-h+hostname可以进入,可是我怎么也进不去呀。

 xinyv 回复于:2003-12-17 15:12:38
我顶。

 thinmonkey 回复于:2003-12-17 15:26:00
如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。
  1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
      kill `cat /mysql-data-directory/hostname.pid`
     你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。
  2. 使用`--skip-grant-tables' 参数来启动 mysqld。
  3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。
(其实也可以用use mysql; update user set password =password('yourpass') where user='root' 来做到。)
  4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(当然,在这里,你也可以重启mysqld。)

 xinyv 回复于:2003-12-18 11:39:19
请问楼上的高手:
   你是从google上找的吗?
   你说的方法我以经知道了,可是在redhat9.0里面根本我就没找到有hostname.pid
所以我根本就不能杀死那个进程,在9.0里面mysql有两个进程我kill掉一个以后根本不起作用,我在redhat8.0里面只要kill掉第一个进程就可以用mysql -h hostname 登录了,请问楼上的高手你在哪个版本调试通过?请给详细指点.万分感谢.我还想知道root口令写到哪个文件里去了,用了什么加密方式?

 sakulagi 回复于:2003-12-18 12:21:07
应该是写在priviledges database里的,不是写在磁盘文件里的。

 tsgx 回复于:2003-12-18 12:34:05
看这一篇,写在mysql数据库的user table里,我一直都用它改密码。
[code:1:7fb96f330b]
Mysql 的用户管理及简化连接 

当初次在机器上安装Mysql时,你可以匿名访问数据库或者以不带口令的root身份进入数据库.这一事实说明初始的安装是不安全的.作为管理员首先应该做的是为root用户设置口令并删除匿名用户. 
1.如何设置密码 
密码可以是空或非空,但不允许用通配符。一个空密码不意味着匹配任何字母或数字,它意味着用户必须不指定密码。在Mysql中密码以一个加密过的值存储,不是一个字面上的文本。如果你在Password列中存储一个照字面上的密码,用户将不能连接!GRANT语句和mysqladmin password命令为你自动加密口令,但是如果你用诸如INSERT、REPLACE、UPDATE等命令,一定要用PASSWORD("your password")而不是简单的"your password"来指定口令。 
如 
Grant all on samp_db.* to user@localhost indentified by "your password" 
mysqladmin -u root password "your password" 
或者在Mysql库中执行语句 
update user set password=password("your password") where user="root" 
flush privileges 
2.如何删除和添加用户 
这很简单,你只要在Mysql数据库中的拥护授权表中使用delete和insert语句 
如 
delete from user where user="" 
insert into user values("localhost","user",password("your password"), 
"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y") 
注意:在执行以上语句后,你都必须告诉服务器重载授权表内容,否则它不起作用.你可以发一条FLUSH PRIVILEGES或执行mysqladmin flush-privileges.(或如果你有一个不支持flush-privileges的老版本,用mysqladmin reload。)另外你还可以通过运行下列命令检查你是否需要告诉服务器重载授权表:mysqladmin -u root status. 

删除匿名用户并为root用户设置口令后,虽然增加了安全,但每次连接数据库都必须指定主机名,用户名及口令等参数.这样一来运行这个程序需要很多输入工作,很快就会让人厌烦(特别我按键速度又太慢).现在好了,自版本3.22以来,Mysql允许在一个选项文件中存储连接参数.这样就不再需要重复输入这些参数了.但你需曾经在命令行上输入过它们后才可以使用.接下来我们来看一下如何创建此类文件. 
  1.在linux环境下,你可以在/etc下编辑my.cnf文件.选项文件是一个无格式的文本文件,因此可以用任何文本编辑器来创建它.文件内容如下所示为了防止别人读取它,你可以加上chmod 600 my.cnf) 
   [client] 
host=serverhost 
user=yourname 
password=your password 
2.在windows环境下,选项文件的内容是相同的,其存放位置在C:\my.cnf. 
当然你还可以在linux下用alias命令设置别名.编辑root/.bashrc文件,在其中加入语句alias samp_db='mysql -h host -u user -pyourpassword'(保存以后别忘了bash重启).另外在windows下,你可以编一个批处理文件samp_db.bat,在其中写入mysql -h host -u user -pyourpassword.以后只要打入samp_db就能进入Mysql.是不是很方便!
[/code:1:7fb96f330b]

 xinyv 回复于:2003-12-18 15:21:58
老大我看了,但是我现在的情况是,在mysql里有人设置了root密码,可是我不知道密码,如果我能登录myslq可以用
use mysql
update user set password=password ("youpassword")
where user="root";
但是现在我只要mysql -u root -p
然后就提示密码.我连库都进不去呀.

 siyeclover 回复于:2003-12-18 15:25:50
[color=gray:acab458dfb]无论用什么方法,杀掉mysqld的进程,然后用下边这个方法启动mysqld。
 2. 使用`--skip-grant-tables' 参数来启动 mysqld。
然后登录到mysql里去修改密码。

cloud就是用这个办法解决这个问题的,你应该也可以才是。
以上
喜欢新田由加的siyeclover[/color:acab458dfb]

 xinyv 回复于:2003-12-18 17:12:20
请问如何用--skip-grant-tables启动mysql,用hostname联接mysql,请给出命令和详细步骤.

 siyeclover 回复于:2003-12-18 20:59:27
[color=gray:clearcase/" target="_blank" >cc5220f0c8]呵呵,你应该自己探索一下,这样才有乐趣啊。
先确认已经杀掉mysqld进程了,然后执行这个
/usr/bin/safe_mysqld  --skip-grant-tables &
再这样登录
mysql -h 192.168.1.2 -u root
上边的192.168.1.2是cloud的mysqld运行机器,你换成自己的,这样登录上去,就可以修改密码了。
mysql安装好cloud做的第一件事情就是给root加密码,不加密码太危险了。

以上
喜欢魉呼的siyeclover[/color:cc5220f0c8]

 双眼皮的猪 回复于:2003-12-18 22:48:47
不错,收藏之. ..

 xinyv 回复于:2003-12-19 12:24:59
谢谢,个位,mysql的密码以经搞定了.方法同上.

原文转自:http://www.ltesting.net