QT中mysql与命令行的数据不统一?

我使用qt连接mysql后新建的表,用命令行却查询不出来,用mysql workbench也查询不到,命令行和mysql workbench的信息是同步的。什么原因呢?
qt创建表的过程:

    qDebug() << QSqlDatabase::drivers() ;

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    //db.setHostName("127.0.0.1");  //连接本地主机
    db.setHostName("localhost");  //连接本地主机
    db.setPort(3306);
    db.setDatabaseName("test");
    db.setUserName("root");
    db.setPassword("123456");

    bool ok = db.open();
    if (ok){
        QMessageBox::information(this, "infor", "link success");
    }
    else {
        QMessageBox::information(this, "infor", "link failed");
        qDebug()<<"error open database because"<<db.lastError().text();
    }

    //创建表
      QSqlQuery query(db);
    //QSqlQuery query;
      ok = query.exec("create table student(id int primary key auto_increment, "
                      "name varchar(255), age int, score int)ENGINE=INNODB;");
      if (!ok){
          qDebug()<< "create table:" << query.lastError();
      }

结果是没报错的,后面还有插入数据的代码,也是正常的。但是用命令行查询却查不到名字为student的表:

命令行跟mysql workbench信息是同步的。

  ok = query.exec("create table student(id int primary key auto_increment, "
                      "name varchar(255), age int, score int)ENGINE=INNODB;");

把上面这行去掉换行:
ok = query.exec("create table student(id int primary key auto_increment, " "name varchar(255), age int, score int)ENGINE=INNODB;");
明显语法错误。
因该是:

 ok = query.exec("create table student(id int primary key auto_increment, name varchar(255), age int, score int)ENGINE=INNODB;");