QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2731|回复: 13

[求助]mysql可以以默认root身分登录(密码为空),但就是没法用里面

[复制链接]
发表于 2002-12-14 15:55:28 | 显示全部楼层 |阅读模式
[求助]mysql可以以默认root身分登录(密码为空),但就是没法用里面的mysql 库,也就改不了密码!为什么使用不了mysql库,该如何解决?

[root@dzyls root]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13 to server version: 3.23.52

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mysql
ERROR 1044: Access denied for user: '@localhost' to database 'mysql'
mysql>
发表于 2002-12-14 16:54:50 | 显示全部楼层
起动mysql 的时候使用 safe_mysqld --skip-grant-table &;
修改root权限

如果再不行,看看data\mysql的权限是否正确,要改成运行mysql服务器的用户能访问的权限,
比如,运行mysql用的用户是mysql,那么mysql用户对这个目录要有读写访问权限
回复

使用道具 举报

 楼主| 发表于 2002-12-14 20:29:30 | 显示全部楼层
[quote:a55fc61b46="kenix"]起动mysql 的时候使用 safe_mysqld --skip-grant-table &;
修改root权限

如果再不行,看看data\mysql的权限是否正确,要改成运行mysql服务器的用户能访问的权限,
比如,运行mysql用的用户是mysql,那么mysql用户对这个目录要有读写访问权限[/quote]

kenix大大,我按你说的去做,果然进去后能用mysql库了,而且可以改密码,可是当我Ctrl-D退出后,再重新进去的时候,却又不行了.
不知你说的改权限是改mysql安装目录的权限吗?我以将mysql目录归属改为root了,权限也改成777了,还有什么需要做的??
-----------------------------
谢谢!
回复

使用道具 举报

发表于 2002-12-14 21:29:45 | 显示全部楼层
看看mysql的root对mysql这个系统数据库权限是正确,是否有访问权限,你有没有运行mysql_install_db ??
回复

使用道具 举报

 楼主| 发表于 2002-12-14 23:11:54 | 显示全部楼层
[quote:b4c0a24bab="kenix"]看看mysql的root对mysql这个系统数据库权限是正确,是否有访问权限,你有没有运行mysql_install_db ??[/quote]

如何看权限是否正确?
没有运行mysql_install_db ,我是按照这里首页里的一篇文章安装的(http://www.linuxfans.org/nuke/modules.php?name=News&file=article&sid=775&mode=&order=0&thold=0)
关于安装mysql的部分如下
------

cd /home/tmp
rpm -ivh MySQL-3.23.52-1.i386.rpm #安装mysql server
rpm -ivh MySQL-client-3.23.52-1.i386.rpm #安装mysql client
/usr/mysql/safe_mysqld & #启动mysql server
mysql #运行mysql 客户端,并开放root用户的远程访问权限。以便调试
use mysql
update user set host = '%' where user = 'root' and host
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<> 'localhost';
~~~~~~~~~
flush privileges;
quit  

  至此mysql安装完成 “印象中画~~~~线的部分没有运行成功,不知是否有影响呢?”

-----------------
3Q
kenix
回复

使用道具 举报

发表于 2002-12-14 23:38:46 | 显示全部楼层
safe_mysqld --skip-grant-table;
select * from mysql.user;
看看这个表里面的root有什么权限,如果不对的话update一下.

默认安装的mysql我到是没用过,不知道会有什么问题,不如自己下载原代码来编译,
到www.mysql.com看看文档吧,或许能找到答案
回复

使用道具 举报

发表于 2002-12-14 23:55:56 | 显示全部楼层
// 我的安装过程:
tar zvxf mysql-3.23.54.tar.gz
cd mysql-3.23.54
./configure --prefix=/opt/mysql \
--localstatedir=/home/mysql \
--with-innodb \
--charset=gbk \
--mysql-user=mysql

make; make install
groupadd mysql
useradd -g mysql -d /opt/mysql mysql // 为了方便,我把这个用户目录放到/opt/mysql

chown -R mysql:mysql /opt/mysql
chmod 700 mysql

mkdir /home/mysql
chmod 700 /home/mysql

/opt/mysql/bin/my_install_db

su - mysql
safe_mysqld &

// configure 的参数有可能有错误, 用configure --help看一下
回复

使用道具 举报

发表于 2002-12-15 00:00:19 | 显示全部楼层
刚才的顺序有点错误,应该先 su - mysql; 然后/opt/mysql/mysql_install_db,否则目录权限不对
回复

使用道具 举报

 楼主| 发表于 2002-12-15 14:27:48 | 显示全部楼层
[quote:d943203a68="kenix"]safe_mysqld --skip-grant-table;
select * from mysql.user;
看看这个表里面的root有什么权限,如果不对的话update一下.

默认安装的mysql我到是没用过,不知道会有什么问题,不如自己下载原代码来编译,
到www.mysql.com看看文档吧,或许能找到答案[/quote]

mysql> select * from mysql.user;
+-----------+------+----------+-------------+-------------+-------------+-------
------+-------------+-----------+-------------+---------------+--------------+--
---------+------------+-----------------+------------+------------+
| Host      | User | Password | Select_priv | Insert_priv | Update_priv | Delete
_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | F
ile_priv | Grant_priv | References_priv | Index_priv | Alter_priv |
+-----------+------+----------+-------------+-------------+-------------+-------
------+-------------+-----------+-------------+---------------+--------------+--
---------+------------+-----------------+------------+------------+
| %         | root |123456 | Y           | Y           | Y           | Y
      | Y           | Y         | Y           | Y             | Y            | Y
         | Y          | Y               | Y          | Y          |
| dzyls     | root | 123456 | Y           | Y           | Y           | Y
      | Y           | Y         | Y           | Y             | Y            | Y
         | Y          | Y               | Y          | Y          |
| localhost |      |          | N           | N           | N           | N
      | N           | N         | N           | N             | N            | N
         | N          | N               | N          | N          |
| dzyls     |      |          | N           | N           | N           | N
      | N           | N         | N           | N             | N            | N
         | N          | N               | N          | N          |
+-----------+------+----------+-------------+-------------+-------------+-------
------+-------------+-----------+-------------+---------------+--------------+--
---------+------------+-----------------+------------+------------+
4 rows in set (0.15 sec)

mysql>

奇怪我的有host是localhost的栏里,其他项都空着,而且有两个dzyls,会不会是这些东西在捣乱?用update命令怎么改?
--------------------
3Q
kenix
回复

使用道具 举报

发表于 2002-12-15 14:53:51 | 显示全部楼层
我也晕了,看了半天没看出什么门道来,呵呵,见笑了,要真不行的话,还是自己编译一个,我已经技穷.抱歉啊
回复

使用道具 举报

发表于 2002-12-15 14:59:32 | 显示全部楼层
两行空的可以删除掉,你把root相关的host改成localhost 和 localhost.localdomain看看有没有用. 然后看看mysql数据库里面其他表是否正常
回复

使用道具 举报

 楼主| 发表于 2002-12-15 17:21:24 | 显示全部楼层
[quote:f304d67d22="kenix"]两行空的可以删除掉,你把root相关的host改成localhost 和 localhost.localdomain看看有没有用. 然后看看mysql数据库里面其他表是否正常[/quote]

是啊是,我想删改,可是不知道用什么命令,不好意思,又要麻烦你了.
-----
3Q
kenix
回复

使用道具 举报

发表于 2002-12-15 21:08:41 | 显示全部楼层
删除可以用 delete from mysql.user where user is null;
去www.mysql.com看看参考,或者找mysql中文参考
回复

使用道具 举报

 楼主| 发表于 2002-12-16 14:44:56 | 显示全部楼层
[quote:5b9d488926="kenix"]删除可以用 delete from mysql.user where user is null;
去www.mysql.com看看参考,或者找mysql中文参考[/quote]
谢谢,kenix!
今天上午,我的mysql问题终于解决了,
采用kenix的方法但失败了:
]mysql> delete from mysql.user where user is null;
Query OK, 0 rows affected (0.00 sec)
                ~~~~~~~~~~~~~~~~~~~~~
于是我从Host下手
mysql> delete from mysql.user where Host="dzyls";
Query OK, 2 rows affected (0.01 sec)
mysql> delete from mysql.user where Host="localhost";
Query OK, 1 row affected (0.01 sec)

mysql> select * from mysql.user;
+------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv |
+------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
| %    | root | 123456 | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y
|
+------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
1 row in set (0.01 sec)

mysql> Bye

结果当我再安装vbulletin的时候,结果一下子成功,激动的我中午只吃了包方便面
------------------
3Q kenix,好崇拜你啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-17 17:33 , Processed in 0.062076 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表