MySql 5.6 error (Table 'mysql.user' doesn't exist) when started as a daemon
I've conquered such issue before, pay attention that there's an original data dir existed in x:/your_mysql_5.6_install_dir/data.

if you have defined datadir=xxx in my.ini, and the path is not the one x:/your_mysql_5.6_install_dir/data, please do the following things:


copy x:/your_mysql_5.6_install_dir/data to the destination folder.
start MySQL


e.g. if you have defined:
[mysqld]
basedir=C:/mysql-5.6.43-winx64
datadir=C:/ProgramData/MySQL/MySQL 5.6 server/data

you need to copy C:/mysql-5.6.43-winx64/data to C:/ProgramData/MySQL/MySQL 5.6 server/data

then start your MySQL.

this has been described in https://dev.mysql.com/doc/refman/5.6/en/windows-create-option-file.html: 


  If you would like to use a data directory in a different location, you
  should copy the entire contents of the data directory to the new
  location.  For example, if you want to use E:\mydata as the data
  directory instead, you must do two things:  
  
  1) Move the entire data
  directory and all of its contents from the default location (for
  example C:\Program Files\MySQL\MySQL Server 5.6\data) to E:\mydata.  
  
  2) Use a --datadir option to specify the new data directory location
  each time you start the server.