我用root账户登录mysql,修改root密码(有原密码)update user set password=password('1111') where user='root';
但是报错 user表是只读的,怎么改为可update啊?请懂的回复谢谢。没做过的关注,一起学习,谢谢!

解决方案 »

  1.   

    应该是你登录的账号有问题,权限不足,一般来说 root@localhost 是有权限更新 mysql.user 表的。show grant; 贴出来看一下。
      

  2.   

    ganzheheyetu (ganzheheyetu)
      '截至2010-10-13 18:50:46  总发帖:5  正常结帖:1  当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
    http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
    http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html8、如何给分和结贴?
    http://community.csdn.net/Help/HelpCenter.htm#结帖
      

  3.   

    show create table user;
    | user  | CREATE TABLE `user` (
      `Host` char(60) collate utf8_bin NOT NULL default '',
      `User` char(16) collate utf8_bin NOT NULL default '',
      `Password` char(41) character set latin1 collate latin1_bin NOT NULL default '',
      `Select_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Insert_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Update_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Delete_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Create_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Drop_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Reload_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Shutdown_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Process_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `File_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Grant_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `References_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Index_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Alter_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Show_db_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Super_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Create_tmp_table_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Lock_tables_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Execute_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Repl_slave_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Repl_client_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Create_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Show_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Create_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Alter_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `Create_user_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
      `ssl_type` enum('','ANY','X509','SPECIFIED') character set utf8 NOT NULL default '',
      `ssl_cipher` blob NOT NULL,
      `x509_issuer` blob NOT NULL,
      `x509_subject` blob NOT NULL,
      `max_questions` int(11) unsigned NOT NULL default '0',
      `max_updates` int(11) unsigned NOT NULL default '0',
      `max_connections` int(11) unsigned NOT NULL default '0',
      `max_user_connections` int(11) unsigned NOT NULL default '0',
      PRIMARY KEY  (`Host`,`User`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges' |
      

  4.   

    先解释我用的绿色版mysql 默认是不用密码直接能登陆 但是好像不是root账户 登陆后
    mysql> show grants;
    +---------------------------------------------------------------------+
    | Grants for ODBC@localhost                                           |
    +---------------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'ODBC'@'localhost' WITH GRANT OPTION |
    +---------------------------------------------------------------------+
      

  5.   

    然后我用了[mysqld]
      skip-grant-tables 跳过user能用root登陆了 
    C:\Documents and Settings\Administrator>mysql -uroot -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.0.45-community-nt MySQL Community Edition (GPL)Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> show grants;
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables opt
    ion so it cannot execute this statement
      

  6.   

    我说下为什么想改user表:因为要用java程序连接数据库,需要自己的密码和账户的,所以我想修改原来的root密码,用这个[mysqld] skip-grant-tables方法登陆后,安装版的mysql(另一台电脑试的)是可以修改root密码的,但是绿色版的一致都是说user表只读,所以一直迷惑,谢谢解答。
      

  7.   

    很显然,你根本不是用ROOT登录的,当然没有权限。你是如何登录的? 正确的登录方法mysql -uroot -p1234 databasename
    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  8.   

    我用了2种方法登陆,修改root密码都是提示 the table user is read only:
    第一种:直接cmd敲入mysql登陆后结果如下:
    第二种方法就是在my.ini配置文件的[mysqld]下面加上skip-grant-table然后重启服务
    可以实现不用密码登陆root账户,但是还是不能用命令update user set password=password('1111') where user='root';修改root密码;同样报错(但是这种方法在安装版的mysql上是可以修改root密码的)谢谢!
      

  9.   

    显然你根本就没用用户名!= #9楼 已经告诉你正确的登录方法了。你仍然不是以ROOT登录的,当然没有权限操作USER表。
     #9楼 就把手册的链接发出来了,可惜楼主根本没兴趣看。
      

  10.   

    嘿嘿 可能有点误会了 我是按照-u root -p 然后输入密码然后登陆,问题是我没有root密码,所以无法用root登陆,我现在要解决的最终问题就是root密码丢失,需要重置root密码:谢谢!
      

  11.   

    参考下贴三楼
    http://topic.csdn.net/u/20090515/21/2b3c9a12-d8a5-4bb1-9895-6069cef5aef8.html
      

  12.   

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('**********');
      

  13.   

    我可以直接修改mysql库里面的这个user表啊。(用root账号登陆)
      

  14.   


    网上有很多文章写了关于root被删的解决方法的。
    我上次就试过,要修改my.ini文件然后重启数据库。先找回root密码,然后进行权限修改
      

  15.   

    我用的就是第三者方法改的 但是该报错显示没有权限修改user表(但是安装版的mysql可以改),现在这个电脑用的绿色版的改不了,所以来提问。我在#12 #10 #8都有提到的。谢谢
      

  16.   

    你登录的时候请加上你的用户名 mysql -uroot !这个已经在回复中说明了多次了。可惜你并不打算按照别人的建议去做。
      

  17.   

    嘿嘿 我貌似没加用户名???在#14楼我说的还不够详细??????不看清楚就回复好像不是我!!!!!!!!在网上找答案?
    第一:这个貌似不是网上??
    第二:在14#我也是再次声明,我按照网上的方法做了,安装版的mysql是可见效的,但是现在是绿色版的mysql是用不了的。
    第三:谢谢你
      

  18.   

    不知道楼主问题解决没?我也遇到免安装版Mysql5.1和5.5root用户不能登录的问题,苦恼中……