MySQL
MySQL
5.5.6 あたりから Timestamp がデフォルトで NOT NULL になった。
Launch
mysql.server start
User
Create
CREATE USER developer@'%' identified by 'password';
-
Create User for select only and being required SSL connection
GRANT SELECT ON db_name.* TO 'user_name'@'%' REQUIRE SSL; SET PASSWORD for user_name = PASSWORD('password_characters');
Privilege
GRANT ALL PRIVILEGES ON db_name.* TO developer@'%';
The server requested authentication method unknown to the client
認証プラグイン
- MySQL5.7までの認証プラグイン
- mysql_native_password がデフォルト
- MySQL8.0より
- caching_sha2_password。 SHA-256を使用した、より安全なパスワードの暗号化を提供するとともに、キャッシュを使用して同一ユーザの認証処理を高速化
create user developer@localhost identified by 'developer';
create user developer@localhost identified mysql_native_password by 'developer';
alter user developer@localhost identified mysql_native_password by 'developer';
GRANT ALL PRIVILEGES ON database_name.* TO 'developer'@'localhost';
Text columns
- CHAR:255Bまでの固定長文字列
- VARCHAR:64KBまでの可変長文字列
- TINYTEXT:255Bまでの可変長文字列
- TEXT:64KBまでの可変長文字列
- MEDIUMTEXT:約1.6MBまでの可変長文字列
- LONGTEXT:約4.3GBまでの可変長文字列
参考: 【Rails】db:migrateでMySQLのLONGTEXT、MEDIUMTEXTを使う
Rails でマイグレーションする際には、 :limit
の値によって column type を指定する。
PHP による接続確認
$connect = true;
$host = 'host';
$db_name = 'db_name';
$user = 'user';
$password = 'password';
$message = '';
try {
$dbh = new PDO("mysql:host=$host;dbname=$db_name;charset=utf8", $user, $password);
} catch (PDOException $e) {
$connect = false;
exit('Database connection failure ' .$e->getMessage());
$message .= 'Database connection failure ' .$e->getMessage() .'';
}
if ($connect) {
$message .= 'Database connection success!';
}
$dbh = null;
echo $message;