MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecat_MySQL
安装MySQL时,有warning:
[root@localhost mysql]# scripts/mysql_install_db --user=mysql Installing MySQL system tables...2015-08-13 14:20:09 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2015-08-13 14:20:09 0 [Note] ./bin/mysqld (mysqld 5.6.26) starting as process 1934 ... 2015-08-13 14:20:09 1934 [Note] InnoDB: Using mutexes to ref count buffer pool pages 2015-08-13 14:20:09 1934 [Note] InnoDB: The InnoDB memory heap is disabled 2015-08-13 14:20:09 1934 [Note] InnoDB: Mutexes and rw_locks use InnoDB's own implementation 2015-08-13 14:20:09 1934 [Note] InnoDB: Memory barrier is not used 2015-08-13 14:20:09 1934 [Note] InnoDB: Compressed tables use zlib 1.2.3 2015-08-13 14:20:09 1934 [Note] InnoDB: Using Linux native AIO 2015-08-13 14:20:09 1934 [Note] InnoDB: Not using CPU crc32 instructions 2015-08-13 14:20:09 1934 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2015-08-13 14:20:09 1934 [Note] InnoDB: Completed initialization of buffer pool 2015-08-13 14:20:10 1934 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created! 2015-08-13 14:20:10 1934 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB 2015-08-13 14:20:10 1934 [Note] InnoDB: Database physically writes the file full: wait... 2015-08-13 14:20:10 1934 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB 2015-08-13 14:20:11 1934 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB 2015-08-13 14:20:12 1934 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 2015-08-13 14:20:12 1934 [Warning] InnoDB: New log files created, LSN=45781 2015-08-13 14:20:12 1934 [Note] InnoDB: Doublewrite buffer not found: creating new 2015-08-13 14:20:12 1934 [Note] InnoDB: Doublewrite buffer created 2015-08-13 14:20:12 1934 [Note] InnoDB: 128 rollback segment(s) are active. 2015-08-13 14:20:12 1934 [Warning] InnoDB: Creating foreign key constraint system tables. 2015-08-13 14:20:12 1934 [Note] InnoDB: Foreign key constraint system tables created 2015-08-13 14:20:12 1934 [Note] InnoDB: Creating tablespace and datafile system tables. 2015-08-13 14:20:12 1934 [Note] InnoDB: Tablespace and datafile system tables created. 2015-08-13 14:20:12 1934 [Note] InnoDB: Waiting for purge to start 2015-08-13 14:20:12 1934 [Note] InnoDB: 5.6.26 started; log sequence number 0 2015-08-13 14:20:14 1934 [Note] Binlog end 2015-08-13 14:20:14 1934 [Note] InnoDB: FTS optimize thread exiting. 2015-08-13 14:20:14 1934 [Note] InnoDB: Starting shutdown... 2015-08-13 14:20:16 1934 [Note] InnoDB: Shutdown completed; log sequence number 1625977 OK Filling help tables...2015-08-13 14:20:16 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2015-08-13 14:20:16 0 [Note] ./bin/mysqld (mysqld 5.6.26) starting as process 1957 ... 2015-08-13 14:20:16 1957 [Note] InnoDB: Using mutexes to ref count buffer pool pages 2015-08-13 14:20:16 1957 [Note] InnoDB: The InnoDB memory heap is disabled 2015-08-13 14:20:16 1957 [Note] InnoDB: Mutexes and rw_locks use InnoDB's own implementation 2015-08-13 14:20:16 1957 [Note] InnoDB: Memory barrier is not used 2015-08-13 14:20:16 1957 [Note] InnoDB: Compressed tables use zlib 1.2.3 2015-08-13 14:20:16 1957 [Note] InnoDB: Using Linux native AIO 2015-08-13 14:20:16 1957 [Note] InnoDB: Not using CPU crc32 instructions 2015-08-13 14:20:16 1957 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2015-08-13 14:20:16 1957 [Note] InnoDB: Completed initialization of buffer pool 2015-08-13 14:20:16 1957 [Note] InnoDB: Highest supported file format is Barracuda. 2015-08-13 14:20:16 1957 [Note] InnoDB: 128 rollback segment(s) are active. 2015-08-13 14:20:16 1957 [Note] InnoDB: Waiting for purge to start 2015-08-13 14:20:16 1957 [Note] InnoDB: 5.6.26 started; log sequence number 1625977 2015-08-13 14:20:17 1957 [Note] Binlog end 2015-08-13 14:20:17 1957 [Note] InnoDB: FTS optimize thread exiting. 2015-08-13 14:20:17 1957 [Note] InnoDB: Starting shutdown... 2015-08-13 14:20:18 1957 [Note] InnoDB: Shutdown completed; log sequence number 1625987 OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: ./bin/mysqladmin -u root password 'new-password' ./bin/mysqladmin -u root -h localhost.localdomain password 'new-password' Alternatively you can run: ./bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd . ; ./bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl Please report any problems at http://bugs.mysql.com/ The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com New default config file was created as ./my.cnf and will be used by default by the server when you start it. You may edit this file to change server settings WARNING: Default config file /etc/my.cnf exists on the system This file will be read by default by the MySQL server If you do not want to use this, either remove it, or use the --defaults-file argument to mysqld_safe when starting the server [root@localhost mysql]#
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
其原因是从 5.6开始,timestamp 的默认行为已经是 deprecated 了。
在MySQL 5.6.6之前,TIMESTAMP的默认行为:
•TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL。(而其他数据类型,如果没有显示声明为NOT NULL,则允许NULL值。)设置TIMESTAMP的列值为NULL,会自动存储为当前timestamp。
•表中的第一个TIMESTAMP列,如果没有声明NULL属性、DEFAULT或者 ON UPDATE,会自动分配 DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP 属性。
•表中第二个TIMESTAMP列,如果没有声明为NULL或者DEFAULT子句,默认自动分配'0000-00-00 00:00:00′。插入行时没有指明改列的值,该列默认分配'0000-00-00 00:00:00′,且没有警告。
要关闭警告,需要加入下面的参数:
[mysqld] explicit_defaults_for_timestamp=true
重启MySQL后错误消失,这时TIMESTAMP的行为如下:
•TIMESTAMP如果没有显示声明NOT NULL,是允许NULL值的,可以直接设置改列为NULL,而没有默认填充行为。
•TIMESTAMP不会默认分配DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP属性。
•声明为NOT NULL且没有默认子句的TIMESTAMP列是没有默认值的。往数据表中插入列,又没有给TIMESTAMP列赋值时,如果是严格SQL模式,会抛出一 个错误,如果严格SQL模式没有启用,该列会赋值为'0000-00-00 00:00:00′,同时出现一个警告。(这和MySQL处理其他时间类型数据一样,如DATETIME)
(参见:http://www.bitsCN.com/article/71054.htm)
也就是 explicit_defaults_for_timestamp 关闭了 timestamp 类型字段锁拥有的一些会让人感到奇怪的默认行为,加入了该参数之后,如果还需要为 timestamp类型的字段指定默认行为,那么就需要显示的在创建表时显示的指定。explicit_defaults_for_timestamp 也就是这个意思:显示指定默认值为timestamp类型的字段。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

記事では、外部キーを使用してデータベース内の関係を表すことで、ベストプラクティス、データの完全性、および避けるべき一般的な落とし穴に焦点を当てています。

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。
