connect_error) { die("Connection failed: " . $conn->connect_error); } if (!$conn->query("CREATE DATABASE IF NOT EXISTS $dbName")) { echo "Error creating database: " . $conn->error . "\n"; } if (!$conn->select_db($dbName)) { die("Error selecting database: " . $conn->error); } // Create camera user $conn->query("CREATE USER IF NOT EXISTS '$cameraUser'@'%' IDENTIFIED BY '$cameraPassword'"); $conn->query("GRANT ALL PRIVILEGES ON $dbName.* TO '$cameraUser'@'%'"); // Create camselect user $conn->query("CREATE USER IF NOT EXISTS '$camSelectUser'@'%' IDENTIFIED BY '$camSelectPassword'"); $conn->query("GRANT SELECT ON $dbName.* TO '$camSelectUser'@'%'"); // position table $conn->query(" CREATE TABLE IF NOT EXISTS position ( id BIGINT PRIMARY KEY, latitude INT, longitude INT ) "); // tag table $conn->query(" CREATE TABLE IF NOT EXISTS tag ( id BIGINT, k VARCHAR(100), v VARCHAR(10000), PRIMARY KEY (id, k), CONSTRAINT fk_position FOREIGN KEY (id) REFERENCES `position`(id) ON DELETE CASCADE ) "); $conn->query("CREATE INDEX IF NOT EXISTS LatLon ON position (latitude, longitude)"); // sync_state table $conn->query(" CREATE TABLE IF NOT EXISTS sync_state ( k VARCHAR(100), v VARCHAR(100) ) "); $conn->query("INSERT INTO sync_state (k, v) VALUES ('sequenceNumber', '0');"); echo "Database, users, and tables created successfully.\n"; $result = $conn -> query("SELECT * FROM position limit 10"); $table_count = $result -> num_rows; printf("Result set has %d rows.\n", $table_count); if ($table_count == 0){ $location = "/opt/init/init.sql"; $commands = file_get_contents($location); $conn->multi_query($commands); echo "Inserted data.\n"; } $conn->close(); ?>