これから仕事でよく使われる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