下载了一个源码,
1、其中有一个setup.sql文件,我是用source c:\setup.sql方法进行导入。
setup.sql代码如下:USE mysql;DELETE FROM user WHERE user='admin' and Password = '43e9a4ab75570f5b';INSERT INTO user VALUES ('%','admin','43e9a4ab75570f5b','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES ('localhost','admin','43e9a4ab75570f5b','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');FLUSH PRIVILEGES;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ confdb;USE confdb;CREATE TABLE t_user (
  name char(30) NOT NULL default '',
  pass char(40) NOT NULL default '',
  level int(1) NOT NULL default '0',
  email char(100) NOT NULL default '',
  realname char(40) NOT NULL default '',
  position char(40) NOT NULL default '',
  corp_name char(40) NOT NULL default '',
  location char(100) NOT NULL default '',
  PRIMARY KEY  (name)
) TYPE=MyISAM;。我安装MySQL软件时设置的密码是123,默认的用户名(应该是root吧?)2、VC代码连接如下:
BOOL CDBMySQL::db_init(char* db_IP, int db_port, bool)
{
    MYSQL *tmpSql = NULL;
    tmpSql = mysql_init(NULL);
    if ( FALSE == mysql_real_connect(tmpSql, db_IP, "admin", "admin", "confdb",0,NULL,0))
    {
        mysql_close(tmpSql);
        tmpSql = NULL;
        
        SetEvent( g_hDBConnectOut );
        return FALSE;
    }     return TRUE;
}运行提示连接失败。不知是什么原因?是不是用户名和密码问题要修改?怎么修改?谢谢!!

解决方案 »

  1.   


    DELETE FROM user WHERE user='admin' and Password = '43e9a4ab75570f5b';INSERT INTO user VALUES ('%','admin','43e9a4ab75570f5b','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
    INSERT INTO user VALUES ('localhost','admin','43e9a4ab75570f5b','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');FLUSH PRIVILEGES;
    上面这一段代码有什么用?不要它吗?
      

  2.   

    连不上的原因有很多,楼主的错误信息是什么?
    创建用户最好不要用insert,你只有对user进行插入,其他的表也有相应的权限设置的;最好grant 来创建新用户
      

  3.   

    if ( FALSE == mysql_real_connect(tmpSql, db_IP, "admin", "admin", "confdb",0,NULL,0))
        {这一段代码,
    if ( FALSE == mysql_real_connect(tmpSql, db_IP, "admin", "admin", "confdb",0,NULL,0))
        {这里的0,为什么不是3306?
    为何不打出错误原因?
    if ( FALSE == mysql_real_connect(tmpSql, db_IP, "admin", "admin", "confdb",3306,NULL,0))
    {
         const char * error = mysql_error(mysql_);
         std::cout<<"*** Connection Error " << error << std::endl;
    }
      

  4.   

    用if ( FALSE == mysql_real_connect(tmpSql, db_IP, "admin", "admin", "confdb",3306,NULL,0))
    也不行啊?是不是mysql软件的问题?