### Description

There is currently no way to pass an `init_command` connection argument for a mysql connection when using either the `mysqlclient` or `mysql-connector-python` libraries with the MySql provider's `MySqlHook`.

Documentation for connection arguments for `mysqlclient` library, listing `init_command`:
https://mysqlclient.readthedocs.io/user_guide.html?highlight=init_command#functions-and-attributes

Documentation for connection arguments for `mysql-connector-python` library, listing `init_command`:
https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html

There can be many uses for `init_command`, but also what comes to mind is why do we explicitly provide support to certain connection arguments and not others?

### Use case/motivation

For my own use right now I am currently am subclassing the hook and then altering the connection arguments to pass in `init_command` to set the `time_zone` session variable to UTC at connection time, like so:

```python
conn_config['init_command'] = r"""SET time_zone = '+00:00';"""
```

Note: This is just an example, there can be many other uses for `init_command` besides the example above. Also, I am aware there is a `time_zone` argument for connections via the `mysql-connector-python` library, however that argument is not supported by connections made with `mysqlclient` library. Both libraries do support the `init_command` argument.

### Related issues

_No response_

### Are you willing to submit a PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

autocommit = False
        self.db_hook.set_autocommit(self.conn, autocommit)
        self.conn.autocommit.assert_called_once_with(autocommit)
    def test_get_autocommit_mysqldb(self):
        self.db_hook.get_autocommit(self.conn)
        self.conn.get_autocommit.assert_called_once()
    def test_run_without_autocommit(self):
        sql = "SQL"
        self.conn.get_autocommit.return_value = False
        
        
        self.db_hook.run(sql, autocommit=False)
        self.conn.autocommit.assert_called_once_with(False)
        self.cur.execute.assert_called_once_with(sql)
        assert self.conn.commit.call_count == 1
    def test_run_with_autocommit(self):
        sql = "SQL"
        self.db_hook.run(sql, autocommit=True)
        self.conn.autocommit.assert_called_once_with(True)
        self.cur.execute.assert_called_once_with(sql)
        self.conn.commit.assert_not_called()
    def test_run_with_parameters(self):
        sql = "SQL"
        parameters = ("param1", "param2")
        self.db_hook.run(sql, autocommit=True, parameters=parameters)
        self.conn.autocommit.assert_called_once_with(True)
        self.cur.execute.assert_called_once_with(sql, parameters)
        self.conn.commit.assert_not_called()
    def test_run_multi_queries(self):