我是mysql的初学者。我安装了mysql 8.0.16。然后我用root登录,创建了一个数据库。然后,我尝试使用Sequel pro创建表。完成此操作后,错误1146(42S02)表'securities_master.exchange'不存在。我尝试了多种方法来修复它,但是没有任何效果。我真的不知道该如何处理。
服务器版本:8.0.16 MySQL社区服务器-GPL 系统:MacOS 10.14 首先,我使用自制软件安装mysql。然后问题出来了。 我试图将其卸载并使用DMG进行安装。 然后,我尝试用小写字母键入数据库名称和表名称。 我删除了ib_logfile0和ib_logfile1。 我重新启动了服务器。 我删除了数据库,然后再次创建。 他们没有工作。
'''
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> create database t;
Query OK, 1 row affected (0.01 sec)
mysql> use t;
Database changed
mysql> CREATE TABLE ‘test’(
-> ‘id’ int(11) unsigned NOT NULL AUTO_INCREMENT,
-> ‘name’ varchar(10) NOT NULL,
-> PRIMARY KEY (‘id’)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+-------------+
| Tables_in_t |
+-------------+
| ‘test’ |
+-------------+
1 row in set (0.00 sec)
mysql> desc test;
ERROR 1146 (42S02): Table 't.test' doesn't exist
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| role_edges |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
33 rows in set (0.00 sec)
'''
答案 0 :(得分:1)
您似乎对单引号'
和反引号`感到困惑。所示的引号不会被MySQL识别为引号,而是简单的字符。
您似乎使用的引号实际上甚至不是标准单引号,而是混合引号‘
和’
。
您显示:
+-------------+ | Tables_in_t | +-------------+ | ‘test’ | +-------------+
表的名称是‘test’
而不是test
。
因此
错误1146(42S02):表't.test'不存在
这样做:
mysql> desc `‘test’`;
或者,使用正确的引号从头开始创建表-反引号:
mysql> CREATE TABLE `test`(
-> `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
-> `name` varchar(10) NOT NULL,
-> PRIMARY KEY (`id`)
-> );
也请注意,name
不是MySQL关键字,也不建议用作列名。