| 363 | """Class for managing a MySQL server""" |
| 364 | |
| 365 | def __init__( |
| 366 | self, |
| 367 | basedir, |
| 368 | topdir, |
| 369 | cnf, |
| 370 | bind_address, |
| 371 | port, |
| 372 | mysqlx_port, |
| 373 | name, |
| 374 | datadir=None, |
| 375 | tmpdir=None, |
| 376 | extra_args={}, |
| 377 | unix_socket_folder=None, |
| 378 | ssl_folder=None, |
| 379 | ssl_ca=None, |
| 380 | ssl_cert=None, |
| 381 | ssl_key=None, |
| 382 | sharedir=None, |
| 383 | ): |
| 384 | self._extra_args = extra_args |
| 385 | self._cnf = cnf |
| 386 | self._option_file = os.path.join(topdir, "my.cnf") |
| 387 | self._bind_address = bind_address |
| 388 | self._port = port |
| 389 | self._mysqlx_port = mysqlx_port |
| 390 | self._topdir = topdir |
| 391 | self._basedir = basedir |
| 392 | self._ssldir = ssl_folder or topdir |
| 393 | self._ssl_ca = os.path.join(self._ssldir, ssl_ca) |
| 394 | self._ssl_cert = os.path.join(self._ssldir, ssl_cert) |
| 395 | self._ssl_key = os.path.join(self._ssldir, ssl_key) |
| 396 | self._datadir = datadir or os.path.join(topdir, "data") |
| 397 | self._tmpdir = tmpdir or os.path.join(topdir, "tmp") |
| 398 | self._name = name |
| 399 | self._unix_socket = os.path.join( |
| 400 | unix_socket_folder or self._topdir, "mysql_cpy_" + name + ".sock" |
| 401 | ) |
| 402 | self._mysqlx_unix_socket = os.path.join( |
| 403 | unix_socket_folder or self._topdir, |
| 404 | "mysql_cpy_mysqlx_" + name + ".sock", |
| 405 | ) |
| 406 | |
| 407 | self._pid_file = os.path.join(topdir, "mysql_cpy_" + name + ".pid") |
| 408 | self._serverid = port + 100000 |
| 409 | self._install = None |
| 410 | self._server = None |
| 411 | self._debug = False |
| 412 | self._sharedir = sharedir |
| 413 | |
| 414 | self.client_config = {} |
| 415 | |
| 416 | super(MySQLServer, self).__init__( |
| 417 | self._basedir, self._option_file, sharedir=self._sharedir |
| 418 | ) |
| 419 | self._init_sql = os.path.join(self._topdir, "init.sql") |
| 420 | |
| 421 | def _create_directories(self): |
| 422 | """Create directory structure for bootstrapping |