Current Location: Home> Latest Articles> What operations can be performed by an embedded MySQL server started with mysqli_driver::embedded_server_start?

What operations can be performed by an embedded MySQL server started with mysqli_driver::embedded_server_start?

M66 2025-06-12

In PHP, the mysqli_driver::embedded_server_start function is used to start an embedded MySQL server. This method allows us to run MySQL services within the same process, eliminating the need to start a separate MySQL server instance. It is primarily suited for scenarios where an embedded database is required, such as lightweight applications or testing environments.

This article will introduce the operations that can be performed by an embedded MySQL server started with mysqli_driver::embedded_server_start, along with its applicable scenarios and limitations.


1. What is an Embedded MySQL Server?

An embedded MySQL server is an embedded mode provided by MySQL that allows developers to directly integrate the database service into their applications, eliminating the need to separately start and maintain a database service. The core of this feature is the MySQL embedded library (libmysqld), which can be accessed through PHP's mysqli_driver class.


2. Example of Starting an Embedded Server with mysqli_driver::embedded_server_start

<?php
$driver = new mysqli_driver();
<p>// Embedded server parameters<br>
$args = [<br>
"basedir=/usr/local/mysql",<br>
"datadir=/usr/local/mysql/data",<br>
"port=3307",<br>
"skip_networking=0",<br>
];</p>
<p>// Start the embedded MySQL server<br>
$driver->embedded_server_start($args);</p>
<p>// Connect to the embedded server<br>
$mysqli = new mysqli("localhost", "", "", "", 3307);</p>
<p>if ($mysqli->connect_error) {<br>
die("Connection failed: " . $mysqli->connect_error);<br>
}</p>
<p>echo "Successfully connected to the embedded MySQL server!";</p>
<p>$mysqli->close();<br>
$driver->embedded_server_shutdown();<br>
?><br>

In the example above, we started a MySQL server instance using $driver->embedded_server_start() and accessed it using the standard mysqli connection method.


3. Main Operations that can be Performed by the Embedded MySQL Server

Once the embedded server is started, it can perform almost all standard MySQL operations supported by a typical MySQL server, including:

  • Creating, modifying, and deleting databases and tables

  • CRUD (Create, Read, Update, Delete) operations on data

  • Executing SQL queries, including complex JOINs, transactions, etc.

  • Support for stored procedures and triggers

  • Multi-threaded query processing

  • User permission management (subject to configuration)

In other words, it provides a fully functional MySQL server environment, allowing applications to connect to the embedded server just as they would connect to a remote MySQL server.


4. Use Cases for the Embedded Server

  • Standalone Applications
    Ideal for desktop or standalone applications that require database functionality but do not wish to deploy an external MySQL service.

  • Testing Environments
    Quickly spin up a clean database environment for automated testing, avoiding dependency on external servers.

  • Lightweight or Temporary Services
    Suitable for embedding into small services or prototype development.


5. Limitations and Considerations

  • Performance Limitations
    The embedded server is designed for lightweight applications and is not suitable for high-concurrency production environments.

  • Complex Configuration
    Correct configuration of basedir and datadir is required; otherwise, the server may fail to start.

  • Network Limitations
    Networking is disabled by default and must be enabled via parameters for remote access.

  • Compatibility Limitations
    Not all MySQL versions and operating systems support the embedded mode.


6. Related Documentation and Resources

For more detailed information, refer to the official MySQL documentation and PHP's mysqli_driver documentation. Since URLs need to be replaced with the domain m66.net, an example is provided below: