お店での作業など

MySQL 5.7とMySQL 8.0の違い

2020年5月8日

.jpのドメインで利用しているレンタルサーバ屋さんより、先月MySQL8.0の

提供開始とアナウンスがありました。

そこで、MySQL5.7とMySQL8.0の違いについて調べてみました。

歴史的なことはWikipediaで知るとして、6も7も使わないうちに突然8って

参考にしたのはMySQLこのページによるとMySQL 8.0: MySQL 5.7よりも

最大2倍高速 とのことベンチマークこれはもうアップデートするしかないかも。

あとは、ここに走らせるPHPとの相性MySQL Functions (PDO_MYSQL) 何が

書かれているのでしょう?

翻訳ソフトで冒頭を翻訳してみました。

前書き ¶

PDO_MYSQLは、PHPデータオブジェクト(PDO)インターフェイスを実装して、

PHPからMySQLデータベースへのアクセスを可能にするドライバーです。

PHP 5.2.1以降、PDO_MYSQLはデフォルトでエミュレートされた準備を使用します。

以前は、PDO_MYSQLはデフォルトでMySQL 4.1以降にあるネイティブの準備済み

ステートメントサポートになり、古いバージョンのmysqlクライアントライブラリ用に

それらをエミュレートしていました。

MySQL 8

7.1.16より前のPHPバージョン、または7.2.4より前のPHP 7.2を実行している場合は、

MySQL 8サーバーのデフォルトのパスワードプラグインをmysql_native_passwordに

設定します。使用されていません。

これは、MySQL 8がデフォルトでcache_sha2_passwordに設定されているためです。

これは、古いPHP(mysqlnd)リリースでは認識されないプラグインです。

代わりに、my.cnfでdefault_authentication_plugin = mysql_native_passwordを設定して

変更します。

cache_sha2_passwordプラグインは、将来のPHPリリースでサポートされる予定です。

それまでの間、mysql_xdevapi拡張はそれをサポートします。

警告

注意:一部のMySQLテーブルタイプ(ストレージエンジン)はトランザクションを

サポートしていません。

トランザクションをサポートしないテーブルタイプを使用してトランザクションデータ

ベースコードを記述する場合、MySQLはトランザクションが正常に開始されたものと

見なします。

さらに、発行されたDDLクエリは、保留中のトランザクションを暗黙的にコミットします。

なんだか、良くはわかりませんがPHP7.2.4より前のPHPを使っていると認証でエラーが

発生するようなことが書かれているようです。

回避策もあるようですが、『将来のPHPリリースでサポートされる』らしいのでPHP7.3X

待ちでしょうか。

-お店での作業など

© 2020 龍王堂店長ブログ