本帖最后由 naughty610 于 2010-06-30 15:10:00 编辑

解决方案 »

  1.   

    检查网络,防火墙,账号权限。
    参考下贴中的检查方法并贴出你的检查结果(#43楼)http://topic.csdn.net/u/20090920/22/14d4f597-b7d4-4c24-b0db-abb2956e66c3.html
    [收集]mysql   无法联接故障现象及原因
      

  2.   

    您好。
    两个问题。
    1。我执行了sudo mysqld stop之后,为什么我在mysql数据库中还可以查询数据呢?不是发把服务已经停掉了么?很是奇怪。
    2。我执行了一下netstat -a,输出的结果中竟然没有3306这个端口?是什么原因?
    谢谢您的回答。原谅小弟初学。。
      

  3.   

    您好,您说的“telnet 3306” 可以直接执行么?naughty@ns:/etc/mysql$ telnet 3306
    Trying 0.0.12.234...
    telnet: Unable to connect to remote host: Invalid argument这个是什么意思?
      

  4.   


    您好。
    naughty@ns:/etc/mysql$ telnet localhost 3306
    Trying ::1...
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    D
    5.1.41-3ubuntu12.1-logJZ|!+R<uZ!AtGFhYdjgIr(Connection closed by foreign host.
    这个执行结果是什么意思呢?
      

  5.   

    你按照下面的操作步骤看看
    1:在A机器上直接登录MYSQL,然后SHOW VARIABLES LIKE '%PORT%',看看用的是哪个端口。或者在配置文件的MYSQLD下的PORT参数,看下是多少,如果不是3306,那么你B里指定的MASTER的端口肯定就是错误的。2:确定能够登录A本机后,看下tongbu这个账号的权限是否足够
    mysql> show grants for 'tongbu';3:在B机登录A机,通过tongbu这个账号。4:在B机上操作1,2,3步,确定都正常。
      

  6.   

    MySql数据库同步复制
    测试版本:MYSQL 5.1.42 WINDOWS版本
    该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。
    数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(windows下为my.ini,Unix/Linux下为my.cnf)
    1、实施环境:
      操作系统:2台WINDOWS XP 
      mysql:mysql-5.1.42
      SvrA ip:192.168.1.10(主端)
      SvrB ip:192.168.1.11(从端)
    2、配置方法
    Demo 1:主从模式[Master->Slave]:A->B
    =====step 1:分别在SvrA、SvrB上配置同步DB及Account=====
    Step A:SvrA上配置
      1.增加一个用户最为同步的用户帐号:
      GRANT ALL ON *.* TO backup@'192.168.1.11' IDENTIFIED BY '123’;
    在主上增加一个用户名称为BACKUP,密码为123,访问IP为从的IP地址
      2.增加一个数据库作为同步数据库:
      create database backup;
      Step B:SvrB上配置
      1.增加一个用户最为同步的用户帐号:
      GRANT FILE ON *.* TO backup.@'192.168.1.10' IDENTIFIED BY '123’;
    在从上增加一个用户名称为BACKUP,密码为123,访问IP为主的IP地址
      2.增加一个数据库作为同步数据库:
      create database backup;
        ====step 2:配置Master、Slave参数====== 
    主从模式:A->B即  SvrA为master ,SvrB为slave
      1、修改SvrA 中mysql的my.cnf文件。在mysqld配置项中加入下面配置:
    server-id=1
    log-bin=D:\log\mysqllog    
    binlog-do-db=backup

    Log-bin #设置需要记录log 可以设置log-bin=/Data/logs/mysqllog 设置日志文件的目录[其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件]。
      binlog-do-db=backup #指定需要日志的数据库
      配置完后重起数据库服务。NET STOP MYSQL  NET START MYSQL
      用show master status 命令看日志情况。
      2、修改SvrB中 mysql的my.cnf文件。在mysqld配置项中加入下面配置:
      server-id=2
      master-host=192.168.1.10
      master-user=backup#同步用户帐号
      master-password=123
      master-port=3306
      master-connect-retry=10 预设重试间隔10秒
      replicate-do-db=backup 告诉slave只做backup数据库的更新
      配置完后重起数据库
      用show slave status看同步配置情况。
      注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info
    测试:在主端建表A,在从端SHOW TABLES 能看到A
    在A添加一条记录,在从端SELECT * FROM A能看到  所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。
    Demo 2、双机互备模式。
      如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。
      在A的配置文件中 mysqld 配置项加入以下设置:
      master-host=192.168.1.11
      master-user=backup
      master-password=123
      replicate-do-db=backup
      master-connect-retry=10
      在B的配置文件中 mysqld 配置项加入以下设置:
      log-bin=D:\log\mysqllog
      binlog-do-db=backup
      注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave start
      重起主从的服务,则可以实现双向的热备。
    测试通过。网络上找的同步方法。
      

  7.   


    你好。好像是您说的这个问题,mysql> show grants for 'tongbu';
    ERROR 1141 (42000): There is no such grant defined for user 'tongbu' on host '%'这是我运行的结果。是因为没有给tongbu这个用户相应的权限吧?
      

  8.   


    这个是另外的一个运行结果。
    mysql> mysql> show grants for 'tongbu'@'192.168.1.207';
    +----------------------------------------------------------------------------------------------------------------------------------------------+
    | Grants for [email protected]                                                                                                              |
    +----------------------------------------------------------------------------------------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'tongbu'@'192.168.1.207' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' WITH GRANT OPTION | 
    +----------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)应该是给了tongbu这个用户权限了的。
      

  9.   


    您好。您给我的第三条建议的结果如下:min@min-laptop:/var/log$ mysql -h 192.168.1.202-u tongbu -p 123456
    mysql  Ver 14.14 Distrib 5.1.36, for pc-linux-gnu (i686) using  EditLine wrapper
    Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license


    Default options are read from the following files in the given order:
    /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 
    The following groups are read: mysql client
    The following options may be given as the first argument:
    --print-defaults Print the program argument list and exit
    --no-defaults Don't read default options from any options file
    --defaults-file=# Only read default options from the given file #
    --defaults-extra-file=# Read this file after the global files are readVariables (--variable-name=value)
    and boolean options {FALSE|TRUE}  Value (after reading options)
    --------------------------------- -----------------------------
    auto-rehash                       TRUE
    character-sets-dir                (No default value)
    column-type-info                  FALSE
    comments                          FALSE
    compress                          FALSE
    debug-check                       FALSE


    i-am-a-dummy                      FALSE
    connect_timeout                   0
    max_allowed_packet                16777216
    net_buffer_length                 16384
    select_limit                      1000
    max_join_size                     1000000
    secure-auth                       FALSE
    show-warnings                     FALSE
    min@min-laptop:/var/log$ 
    这样算不算是我在b机器上登录A机器的mysql数据库登录成功了呢?如果是登录成功了的话,为什么不是停留在mysql>这个提示符下而是直接推出来了呢?
      

  10.   

    您好。我知道我错在哪里了。在mysql中,mysql默认应该是不可以远程登录的。这样的话,作为从服务器的B机器就不能登录到作为主服务器的A机器,自然也就出现error connecting to master的问题了。
      

  11.   


    在my.cnf中有一个bind-address=127.0.0.1的字段,把这个注释掉就好了。呵呵,是一个英文论坛上找到的。真不容易。谢谢您啦。