Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 创建表失败_Mysql - Fatal编程技术网

Mysql 创建表失败

Mysql 创建表失败,mysql,Mysql,我安装了mySQL服务器,创建了一个名为ej_instance的用户,并设置了密码“password”。使用以下命令登录到服务器 mysql -u ej_instance -p; -- entered password ej_实例只能访问ejabberd数据库。所以我执行如下命令 use ejabberd; SET table_type=InnoDB; CREATE TABLE users ( username varchar(250) PRIMARY KEY

我安装了mySQL服务器,创建了一个名为
ej_instance
的用户,并设置了密码“password”。使用以下命令登录到服务器

  mysql -u ej_instance -p;
  -- entered password
ej_实例只能访问
ejabberd
数据库。所以我执行如下命令

  use ejabberd;
  SET table_type=InnoDB;

  CREATE TABLE users (
     username varchar(250) PRIMARY KEY,
     password text NOT NULL,
     created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
  ) CHARACTER SET utf8;
然后尝试执行如下命令

  use ejabberd;
  SET table_type=InnoDB;

  CREATE TABLE users (
     username varchar(250) PRIMARY KEY,
     password text NOT NULL,
     created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
  ) CHARACTER SET utf8;
但这是对我的错误。下面是错误

  ERROR 1193 (HY000): Unknown system variable 'table_type'
  ERROR 1046 (3D000): No database selected

如何才能做到这一点?还有什么需要更改的吗?

在创建表时指定引擎类型,如下所示:

USE ejabberd;

CREATE TABLE users (
     username varchar(250) PRIMARY KEY,
     password text NOT NULL,
     created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) CHARACTER SET utf8 ENGINE = INNODB;
如果使用错误仍然显示,请检查:

  • 数据库存在
  • 用户ej_实例具有访问和创建数据库表的权限
  • 以根用户身份登录:

    #check the database exists
    SHOW DATABASES LIKE 'ejabberd';
    
    #check user permissions
    SHOW GRANTS FOR 'ej_instance'@'localhost';
    SHOW GRANTS FOR 'ej_instance'@'%';
    
    如果您没有足够的权限:

    #grant all permission on the user for the specified database
    GRANT ALL ON ejabberd.* TO 'ej_instance'@'localhost';
    GRANT ALL ON ejabberd.* TO 'ej_instance'@'%';
    FLUSH PRIVILEGES;
    

    在你使用ejabberd之后;是否显示“数据库已更改”?请尝试将
    用户ejabberd
    添加到您试图执行的脚本中。@DaImTo Yes它已记录相同的内容<代码>数据库已更改@AndriusNaruševičius我已作为
    ej_实例
    登录
    ejabberd
    是数据库名。@DaImTo感谢您的响应,我设置了storage\u engine=InnoDB,它工作了。感谢您的响应,我设置了
    set storage\u engine=InnoDB
    它工作了。我通常会使它运行得更快,这意味着在被问到之前:)