LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1127|回复: 4

mysql 4.0.13 for linux 进程连接出错?

[复制链接]
发表于 2003-6-3 13:52:51 | 显示全部楼层 |阅读模式
  主系统:Gentoo Linux ,Mysql版本4.0.13,IP:192.168.0.111.
  
  错误提示:
  C:\mysql\bin>mysql -u root -h 192.168.0.111 -p
  Enter password: ******
  ERROR 1130: Host '192.168.0.144' is not allowed to connect to this MySQL server
  
  mysqlaccess.conf内容:

# ----------------#
# Global settings #
# --------------- #
  #$Param{'host'}     = '';
  $Param{'user'}     = 'nobody';
  $Param{'db'}       = 'test';
  $Param{'password'} = 'foobar';
  $Param{'debug'}    = 0;

# --------------------------#
# Settings for Command-line #
# ------------------------- #
if ($CMD) {
  $Param{'superuser'} = 'root';
  $Param{'rhost'}     = 'localhost';
  $Param{'spassword'} = '';
  $Param{'brief'}     = 1;
}

# ---------------------#
# Settings for CGI-BIN #
# -------------------- #
if ($CGI) {
  $Param{'superuser'}  = 'root';
  $Param{'rhost'}      = 'localhost';
  $Param{'spassword'}  = '';
  $Param{'table'}      = 1;
}

1;  #to make require happy

  

  my.cnf文件内容:


[client]
#password        = my_password
port                = 3306
socket                = /var/run/mysqld/mysqld.sock

[safe_mysqld]
err-log                = /var/log/mysql/mysql.err

[mysqld]
#skip-networking
skip-innodb
user                = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket                = /var/run/mysqld/mysqld.sock
port                = 3306
log                = /var/log/mysql/mysql.log
basedir                = /usr
datadir                = /var/lib/mysql
tmpdir                = /tmp
language        = /usr/share/mysql/english
skip-locking
set-variable        = key_buffer=16M
set-variable        = max_allowed_packet=1M
set-variable        = thread_stack=128K

[mysqldump]
quick
set-variable        = max_allowed_packet=1M

[mysql]
#no-auto-rehash        # faster start of mysql but no tab completition

[isamchk]
set-variable        = key_buffer=16M
发表于 2003-6-4 10:09:27 | 显示全部楼层
$Param{'rhost'} = 'localhost'
 楼主| 发表于 2003-6-5 17:34:23 | 显示全部楼层

两种方法都试过了还是不行

先把这行注释掉,又把localhost 改成 192.168.0.144(客户端IP),都不行.
请说得详细些好吗?
发表于 2003-6-6 08:13:18 | 显示全部楼层

MySQL的认证方式是有先后顺序的。

像老兄这样以字符命令的行式:mysql -u root -h ip -p
的连接方式,MySQL根本不会去看你的那个my.cf的文档,而是直接以你所给的命令来进行登录,另外那个配置文件只是起一个你方便操作的作用,不能改变MySQL数据库服务器里对限制主机存取的定义。因此,如果你从来没有改过自己的系统权限密码,那么首先请用scripts/mysql_install_db 来初始你的系统初始权限。
然后用root登录
mysql -u root
不用输入密码。然后查询表user
select host, user, password from user;
可以看到它应该有四条记录分别是两个root用户,两个test用户,密码都是空的,host字段都是对应这两个地主机名:localhost和你现在的主机名。
可以象操作一般数据库一样来操作这个数据表,也可以用set password for root@"%"=password("密码"),来设定密码。如果你需要从哪台机器上访问数据库可以更新host字段,更新完成后,为使权限系统生效:flush privileges
即可生效。
总的来说,MySQL的权限系统设计得很精巧,连不数据库服务器,大多问题是因为权限系统没有搞清楚。包括在windows下用VB,Delphi连接MySQL数据库服务器。
请兄弟参考一下我发的关于MySQL中文手册的贴子第六章 MySQL的权限系统。
 楼主| 发表于 2003-6-6 09:27:05 | 显示全部楼层

非常感谢,按照您的指点成功连接!

  在Linux下用图形界面工具mysqlcc,修改mysql库user表,把其中第二个host字段是localhost的记录改成192.168.0.144(客户端IP),user是root,其他全是Y,执行查询后,客户端连接成功.非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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