バージョン 3.20.28 より前のバージョンを実行していて、バージョン 3.21 に切り替える場合は、以下のことを行う必要があります。
--old-protocol
オプションを指定して
mysqld
バージョン 3.21
サーバを起動して、そのサーバをバージョン
3.20
ディストリビューションからのクライアントと共に使用することができます。この場合、新しいクライアント関数
mysql_errno()
は、サーバエラーは返さず、CR_UNKNOWN_ERROR
だけを返します(ただし、この関数はクライアントエラーに対しては機能します)。また、サーバは、新しい方式ではなく、3.21
より前の古い password()
チェック方式を使用します。
mysqld
に --old-protocol
オプションを使用しない場合は、以下の変更を行う必要があります。
すべてのクライアントコードを再コンパイルする。ODBC
を使用している場合は、新しい
MyODBC
2.x
ドライバを入手すること。
scripts/add_long_password
スクリプトを実行して、mysql.user
テーブルの Password
フィールドを CHAR(16)
に変換する。
すべてのパスワードを mysql.user
テーブルに割り当て直す(31
ビットのパスワードではなく 62
ビットのパスワードを取得するため)。
テーブル形式は変更されていないので、テーブルを変換する必要はない。
MySQL バージョン 3.20.28
以降では、クライアントに影響を及ぼすことなく新しい
user
テーブル形式を処理することができます。バージョン
3.20.28 より前の MySQL
バージョンを使用している場合、user
テーブルを変換すると、パスワードはその MySQL
では無効になります。したがって、安全のために、最初にバージョン
3.20.28
以上にアップグレードしてから、バージョン
3.21 にアップグレードしてください。
新しいクライアントコードは 3.20.x
mysqld
サーバと連携して動作します。したがって、3.21.x
で問題が発生した場合は、クライアントを再コンパイルしなくても既存の
3.20.x サーバを使用することができます。
mysqld
に --old-protocol
オプションを使用しないと、旧バージョンのクライアントは接続できず、以下のエラーメッセージを出力します。
ERROR: Protocol mismatch. Server Version = 10 Client Version = 9
新しい Perl DBI
/DBD
インタフェースは、旧バージョンの
mysqlperl
インタフェースもサポートします。mysqlperl
を使用する場合に唯一変更する必要があるのは、connect()
関数の引数です。
新しい引数は、host
、database
、user
、および
password
です(注意:
user
引数と password
引数は順序が入れ替わりました)。 See
項11.5.2. 「DBI
インタフェース」。
以下の変更は、旧バージョンのアプリケーションのクエリに影響を及ぼすことがあります。
HAVING
は ORDER BY
節の前に指定しなければならなくなった。
LOCATE()
のパラメータの順序が入れ替えられた。
いくつかの新しい予約語がある。最も注目すべきものは、DATE
、TIME
、および
TIMESTAMP
である。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.