现连接MYSQL,我用了三种方法:
1. 用ODBC;
2. 用AdoConnction;
   try
     ADOCon1.Close;
     ADOCon1.ConnectionString:=('DRIVER={MySQL ODBC 5.1 Driver};'+
                     'SERVER=localhost;'+
                     'DATABASE=mysql;'+
                     'USER=root;'+
                     'PASSWORD=root;'+
                     'OPTION=3;'); //OPTION 这个是什么
     ADOCon1.Open;
    except
      application.MessageBox('无法连接数据库服务器.请与管理员联系','提示',MB_ICONINFORMATION);
    end;3. 用SQLConnection1;同过ODBC可以连接到局域网内的其它机器;
但是通过AdoConnction和SQLConnection1,却连接不上局域网内的其它机器。请教:
通过AdoConnction和SQLConnection1,怎样才能连接上局域网内的其它机器呢?

解决方案 »

  1.   

    我用的也是MYSQL数据库,当时也让我废了不少时间。
    这是我连接MYSQL数据库的字符串,用的是ADO,当然要先装ODBC 3.51版本的。不过不需要配置
    DRIVER={MySQL ODBC 3.51 Driver};SERVER = 192.168.1.6;DATABASE = iamp;USER = WJH;PASSWORD = 123456;OPTION=3;你如果想在局域内访问其它装了MYSQL的电脑,必须先在MySQLQueryBrowser执行一下下面的语句(底下是我在文档里的内容):
    在程序运行时,因MySQL的安全设计,我们无法使用root这个默认的用户名进行局域网或是IP地址的访问,所以必须新建一个用户名来进行局域网的连接,创建的命令如下,先启动MySQL Query Browser,使用root用户登陆服务器,Default Schema改为mysql,在命令输入框中输入以下字符串:
    grant select,update,insert,delete on *.* to chen@'%' identified by 'wjh8212';
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    此命令的格式:
    grant 权限 on 数据库名.表名 用户@host identified by "用户密码";
    查看结果,执行:
       use mysql;
       select host,user,password from user;
       可以看到在user表中已有刚才创建的chen用户。host字段表示登录的主机,其值可以用IP,也可用主机名,
       将host字段的值改为%就表示在任何客户端机器上能以chen用户登录到mysql服务器,建议在开发时设为%。
      

  2.   

    root这个用户好象是不允许在局域网内访问的
      

  3.   

    root是否能够被其他机器访问,是可以通过权限配置的。
      

  4.   

    但最好是不要用root这个用户来访问的,毕竟它是属于最高权限的
      

  5.   

    option MyODBC工作方式的选项
      

  6.   

    你所用的 3 是 1+21 客户端无法处理,MyODBC返回列的实际宽度。
     
    2 客户端无法处理,MyODBC返回受影响行的真值。如果设置了该标志,MySQL将返回“发现的行”取而代之。再如 16386 是 2 + 16384