Help us understand the problem. What is going on with this article?

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

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でこの機能は廃止されました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした