これから仕事でよく使われるMySQLの曖昧なところやまとめ資料を作成する。
❶. MySQL 文字コードの設定方法
Create文と同時に設定する。
SQL文
create databases DB名 charater set utf8 collate utf8_general_ci
・character : パソコンに保存される文字コード
・collate: 文字コードの比較、内容の検索時に使用される文字コード
❷. ユーザー作成、権限設定SQL文
ユーザー作成:CREATE USER ユーザー名 IDENTIFIED BY パスワード
権限設定:GRANT 権限 ON DB名 TO ユーザー名
権限設定後の再実行:FLUSH PRIVILEGES :
❸. 認証方式の変更
MySQL 8.0以降からは接続時の認証方式が変更可能だ。
デフォルト値は caching_sha2_passwordだが、PHPではこの認証方式を
サポートしていない。その為、接続時に下記のエラーメッセージが検出される
可能性がある。
エラーメッセージ:the server requested authentication method unknown to the client
解決方法は認証方式をmysql_native_passwordで変更しなければならない。
下記のSQLの実行で変更できる。
SQL文:
ALTER USER 'ユーザー名'@'ドメイン名' IDENTIFIED WITH mysql_native_password by 'パスワード';
適用確認は
SELECT user, host, plugin FROM mysql.user;
で確認する。
参照:認証方式のデフォルト値を変更する方法
1. ターミナルを開き、sudo vi /etc/mysql/mysql.conf.d/mysqld.cnfに接続する。
2. [mysqlId]段落を探し、default-authentication-plugin=mysql_native_password
で変更する。
3. sudo service mysql reloadでMySQLを再起動する。
❹. MySQLのデフォルトエンジンの確認
MySQLのデフォルトエンジンはInnoDBである。
確認するSQL文は
show engines;
参照:SQL文はIBM社で開発した言語でデータベースを操作する為の言語
❺. PHPとMySQLを接続する方法
1. mysql関数(PHP7からはこの関数をサポートしない)
2. mysqli
例
<?php
$mysqli = new mysqli('localhost', 'ユーザー名','パスワード','DB名');
if($mysqli->connect_error){
die("Connect_Error:(".$mysqli->connect_error.")".$mysqli->connect_error);
}
print "success";
$mysqli->close();
?>
3. PDO