BugFix...
Table 'performance_schema.session_variables' doesn't exist
こんなエラーに見舞われた
Table 'performance_schema.session_variables' doesn't exist
- MySQL 5.7.10
- MacOSX Yosemite
mysql_upgrade -u root -p --force
MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.4.7 mysql_upgrade — MySQL テーブルのチェックとアップグレード
mysql_upgrade はすべてのデータベースのすべてのテーブルに対して、MySQL サーバーの現在のバージョンとの非互換性を調べます。また、mysql_upgrade は、システムテーブルをアップグレードして、追加された可能性のある新しい権限または機能を利用できるようにします。
原理は不明なんだが。。。
ScalaでIPv4とIPv6の判別
命題 文字列で与えられたIPアドレスがIPv4なのかIPv6なのかを判別したいとき、Javaではどう書けばいいのか。
Javaの書き方を完全に流用してます。isInstanceOfは知らないとハマります。
import java.net.Inet6Address import java.net.Inet4Address import java.net.InetAddress println(InetAddress.getByName("192.0.2.10").isInstanceOf[Inet6Address]) // false println(InetAddress.getByName("::1").isInstanceOf[Inet6Address]) // true
java-ipv6をScalaで使ってみる
JavaのSubnetUtilsがIPv6に対応していないので、どうしたものかと思ったら、java-ipv6なるライブラリがあることを知る。 READMEを見るとインストールはMavenしか書かれていないので、sbtだとどうかな~とか思いつつ、build.sbtには以下のように書く。
libraryDependencies += "com.googlecode.java-ipv6" % "java-ipv6" % "0.16"
あとはREADMEを読みつつ、JavaコードをScalaコードに翻訳する。
こちらは、特定のIPアドレスがプレフィックス表示つきIPv6の中に含まれているかどうかを確認するコード。
import com.googlecode.ipv6._ import com.googlecode.ipv6.IPv6Network import com.googlecode.ipv6.IPv6NetworkMask import com.googlecode.ipv6.IPv6AddressRange import com.googlecode.ipv6.IPv6Address val strangeNetwork = IPv6Network.fromString("fe80::226:2dff:fefa:cd1f/43") val range = IPv6AddressRange.fromFirstAndLast(IPv6Address.fromString(strangeNetwork.getFirst().toString), IPv6Address.fromString(strangeNetwork.getLast().toString)) println(range.contains(IPv6Address.fromString("fe80::226:2dff:fefa:dcba"))) // true println(range.contains(IPv6Address.fromString("fe81::226:2dff:fefa:dcba"))) // false
IPv6あんまりわかってないね。