sql >> Databasteknik >  >> RDS >> Mysql

Lagra IPv6-adresser i MySQL

Vad sägs om:

BINARY(16)

Det borde vara tillräckligt effektivt.

För närvarande finns det ingen funktion för att konvertera textuella IPv6-adresser från/till binära i MySQL-servern, som noterats i den felrapporten. Du måste antingen göra det i din applikation eller möjligen göra en UDF (User-Defined Function) i MySQL-servern för att göra det.

UPPDATERING:

MySQL 5.6.3 har stöd för IPv6-adresser, se följande:"INET6_ATON(expr) ".

Datatypen är VARBINARY(16) istället för BINARY(16) som jag föreslog tidigare. Den enda anledningen till detta är att MySQL-funktionerna fungerar för både IPv6- och IPv4-adresser. BINARY(16) är bra för att endast lagra IPv6-adresser och sparar en byte. VARBINARY(16) bör användas vid hantering av både IPv6- och IPv4-adresser.

En implementering för äldre versioner av MySQL och MariaDB, se följande:"UTLÄGA MYSQL 5 MED IPV6-FUNKTIONER ".



  1. rekursiv funktionskategoridatabas

  2. ORA-12560:TNS:protokolladapterfel

  3. MySQL:summan av varje dag

  4. SQLite - Släpp en tabell