When zabbix_proxy starts without database and create it, that's ok. It only allocate the memory to procced with the collect data.
On the other hand, if database exists and have, for example, 100M, zabbix_proxy allocate about 100M for each process. In a host with 2GB of RAM, with, for example, 40 pollers, the zabbix_proxy is dead by "out of memory" killer because it has allocated a lot of memory.
If database is removed and zabbix_proxy is restarted, the daemon starts normally and allocate much less memory. A new restart on the process cause out of memory again.