I just ran into same problem while I was trying to restore one table from .ibd
file. I know it's been a long time so I wrote this here for people who still running into the same problem.
Continuing with @Ed Cottrell's answer, you will need to change the mysql global variable innodb_file_per_table
to let mysql to store .ibd
in your own file instead of using system tablespace.
To achieve this you can do (also see official docs):
change your my.cnf file, adding following line and restart mysql server
[mysqld]
innodb_file_per_table=1
set global variable in mysql command (sometimes not working due to security issue)
SET GLOBAL innodb_file_per_table=1;
You may need to DROP your table before this take effects.
After doing this, you will be able to see .ibd
files inside PATH/TO/MYSQL/DB_NAME
directory (e.g. /var/lib/mysql/DB_NAME
).