18
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MicroAd (マイクロアド)Advent Calendar 2019

Day 6

MySQLでここ最近廃止・非推奨となった機能

Posted at

MySQLは2015年に5.7、2018年4月に8.0のメジャーバージョンがGAとなり、その後も最新の8.0系についてはおよそ3ヶ月ごとのメンテナンスリリースでCHECK制約、CLONEプラグイン、INSTANT ADD COLUMNなど多くの新機能が追加されています。
一方で、新しいリリースで従来の機能が廃止または非推奨となることもあり、アップグレードの際には注意が必要となります。(大抵非推奨となった次のメジャーリリースで廃止されるため、突然問題となることは少ないです)

全てを紹介することはできませんが、目立つものや話題になったものについて幾つか挙げてみたいと思います。おおよそ5.6〜8.0の間を対象としています。

システム・ユーザ関連

mysql_upgrade

MySQLでは従来、パッケージのアップグレード後に mysql_upgrade コマンドを実行してテーブルの互換性チェックとアップグレードを行う必要がありました。
8.0.16からは、本機能を実行することなくアップグレードすることが可能となり、 mysql_upgrade は非推奨となりました。

環境変数 MYSQL_PWD

MySQLでは、CLIによるログイン実行時などに -p オプションを付与しなかった場合、OSに環境変数 MYSQL_PWD が定義されていればそれを用いてログインを試行する機能がありますが、8.0.18において本機能はセキュリティ上の観点から非推奨、かつ将来のリリースで削除予定となりました。

SUPER権限

MySQLで管理者向け機能を利用する際、多くはSUPER権限が必要でした。
8.0からは非推奨となり、代替として動的権限 (xxxx_ADMIN) の使用が推奨されています。

validate_password

(機能の廃止ではないですが、互換性のない変更のため取り上げます)
MySQL5.7で、パスワードの複雑さ(文字種、文字列長)を検証する validate_password というプラグインが追加されましたが、8.0からはプラグインでなくコンポーネントという扱いになりました。削除する場合は、 uninstall component コマンドを実行します。

uninstall component 'file://component_validate_password';

パラメータ関連

sql_mode='NO_AUTO_CREATE_USER'

システム変数 sql_mode に指定することで、存在しないユーザに対するGRANT文を実行した時にユーザが自動作成されることを禁止できました。
5.7ではデフォルト設定されており、削除することで従来のGRANT文によるユーザ作成を行うことができましたが、8.0からは本パラメータが廃止され、GRANT文でユーザを作成することは完全に不可能になりました。

innodb_undo_tablespaces

InnoDBにおけるUNDO表領域の数を定義する innodb_undo_tablespaces というパラメータがあり、5.7以前ではデフォルトが0(システム表領域内にUNDO表領域を作成する)でしたが、8.0GA以降は「デフォルト2、かつ最小値2」となり、さらに8.0.14以降は「変更不可能、かつ将来のリリースで削除予定」となりました。

データ型

旧形式の日付・時刻型

MySQL5.6.4より前に使用されていた、マイクロ秒非対応のTIME、DATETIME、および TIMESTAMPは8.0で廃止されました。
MySQL5.7にアップグレードした後、 mysql_upgrade を実行することで新形式の日付・時刻型に修正されるため、順当にバージョンアップしている場合は問題にならないと思われます。
参考:MySQL 8.0: Removing support for old temporal datatypes

SQL関連

GROUP BY 〜 DESCの廃止

以前のMySQLでは、GROUP BY句の末尾に DESC を付与することでORDER BY句なしに降順ソートすることができましたが、8.0.13でこの機能は廃止されました。

18
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?