        Name: myodbc35130
     Purpose: Port of MyODBC driver version 3.51.30

This is version 3.51.30 of the MySQL database driver (MySQL Connector/ODBC
3.51.30, the last 3.51 release).


Installation
------------
The driver directory contains the driver (myodbc35130) which should be
installed using ODBCMan. It can be installed next to the older 3.51.06
driver.


odbc/ini and odbcinst/ini files
-------------------------------
These files contain example entries for the odbc/ini and odbcinst/ini files.

These files can be configured using ODBCMan but the entries supplied here
are to give you an idea of what is needed to get basic connectivity up
and running.

The DSN keys the driver reads are Server, Port, Database, User, Password,
Option, Socket and Stmt (not Servername/Username as in the psqlodbc
DSNs). Use Driver = <ODBC$DriverDir>.myodbc35130.myodbc.

Set UnloadSafe to 1 so that !ODBC unloads the driver when the last
client disconnects. The ODBCMan/iODBC keys Name, ServerType,
ThreadManager, Trace, TraceFile and UnloadSafe are ignored by the driver.


MySQL 5.7 and 8.0 servers
-------------------------
libmysql32 from mysql_3_23_58 speaks the MySQL 4.1 protocol, so the driver
can log in to MySQL 5.7 and 8.0 servers. Only the mysql_native_password
method is supported; MySQL 8.0 accounts default to caching_sha2_password,
so change the account with:

  ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY '...';

JSON columns are returned as text (SQL_LONGVARCHAR).


MySQL 3.23 client
-----------------
3.51.30 expects a MySQL 4.0 or later client library. This port builds it
against the MySQL 3.23.58 client (h.riscoscompat, c.riscoscompat), so:

  - Only Latin-1 is supported; the Unicode (W) entry points convert
    Latin-1 to and from SQLWCHAR and characters above U+00FF become '?'.
  - Autocommit is set with SET AUTOCOMMIT; no multiple statements or
    result sets; no read/write timeouts or SSL options.
  - There is no setup library, so SQLDriverConnect never prompts: it
    connects with the details in the DSN or connection string and returns
    the MySQL error if that fails.


Building
--------
Requirements: Acorn C compiler
              Acorn libfile
              Acorn C library (32 bit)
              Rink
              TCPIPLibs (32 bit)
              CLibSupport
              MySQL 3.23.58 client library (libmysql32, with the
              MySQL 4.1 protocol, from Projects.Libraries.Database.mysql_3_23_58)
              iODBC 3.52.01 headers

The driver includes mysql_3_23_58's mysql.h and embeds the MYSQL struct,
so rebuild it from clean (delete o32) whenever libmysql32's headers
change.

TCPIPLibs and rink need to be available to compile this. The resulting
files (MyODBCseg and MyODBClnk) are placed into the driver shared
resource, !ODBC.drivers.myodbc35130.

Test.acorn-check.sh is a GCCSDK compile and symbol check for Linux; it is
not a replacement for building with Acorn C.
