Common SQL Errors

MySQL Error 3090: ER_WARN_DEPRECATED_SQLMODE - How to Fix and Prevent

Galaxy Team
August 8, 2025

MySQL warns that the SQL mode you are trying to set is deprecated and scheduled for removal in a future version.

Sign up for the latest in common SQL errors from the Galaxy Team!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

What is MySQL error code 3090 ER_WARN_DEPRECATED_SQLMODE?

ER_WARN_DEPRECATED_SQLMODE (MySQL 3090) appears when you activate a deprecated SQL mode. Remove the obsolete mode from sql_mode or migrate your code to modern modes to clear the warning.

Error Highlights

Typical Error Message

ER_WARN_DEPRECATED_SQLMODE

Error Type

Configuration Warning

Language

MySQL

Symbol

in a future release. ER_WARN_DEPRECATED_SQLMODE was added in 5.7.6.

Error Code

3090

SQL State

HY000

Explanation

Table of Contents

What is ER_WARN_DEPRECATED_SQLMODE?

MySQL raises ER_WARN_DEPRECATED_SQLMODE when you attempt to enable a SQL mode that MySQL developers have marked for removal. The server still runs the statement but issues a warning to encourage early migration.

The warning was introduced in MySQL 5.7.6 and continues in 8.x. Ignoring it can leave applications unprepared for future upgrades where the mode will disappear entirely.

When does the warning occur?

The message appears during SET sql_mode commands, server startup with a deprecated mode in my.cnf, or session changes via client libraries. The server parses the mode list, flags any obsolete entries, and pushes the warning to the client.

Because it is a warning, the SQL statement usually succeeds, but strict modes may escalate it if you promote warnings to errors.

Why is it important to fix?

Continuing to rely on deprecated modes can break applications after upgrading to a newer MySQL version that removes the setting. Addressing the warning protects future compatibility and simplifies migration testing.

Common Causes

Deprecated mode left in my.cnf

An old global sql_mode value contains a mode that has since been deprecated.

Legacy application sets mode at login

Connection helpers or ORM libraries run SET sql_mode including obsolete values.

Copy-paste from outdated documentation

Developers reuse sample code listing modes that are no longer recommended.

Related Errors

ER_WARN_DEPRECATED_SYNTAX

Warns that a particular SQL syntax element is deprecated. Similar remediation: rewrite code.

ER_WRONG_VALUE_FOR_VAR

Raised when an invalid or misspelled mode is supplied. Unlike 3090, the statement fails.

ER_UNKNOWN_SYSTEM_VARIABLE

Appears when referencing a configuration variable that no longer exists.

FAQs

Does the warning stop my query from running?

No, the query executes unless you have sql_mode=STRICT or treat warnings as errors.

Which modes are currently deprecated?

The list changes by version. In MySQL 8.0, ONLY_FULL_GROUP_BY is mandatory and cannot be disabled, so attempts to unset it trigger 3090.

Can I suppress the warning?

Suppressing is discouraged. Instead, remove the deprecated mode. For temporary silence, use SHOW COUNT(*) WARNINGS to ignore it, but plan a proper fix.

How does Galaxy help?

Galaxy highlights server warnings inline, making it easy to spot 3090, and lets you edit sql_mode snippets quickly in a shared, version-controlled environment.

Start Querying with the Modern SQL Editor Today!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

Check out some other errors

Trusted by top engineers on high-velocity teams
Aryeo Logo
Assort Health
Curri
Rubie Logo
Bauhealth Logo
Truvideo Logo