XAMMPを入れた直後の忘れがちな初期設定とか操作手順とかまとめています。
mysqlのバージョン確認方法
1.XAMPPのコントロールパネルを開き、[Shell]をクリックする
2.バージョン確認コマンドを実行する
mysql --version
mysql Ver 15.1 Distrib 10.1.34-MariaDB, for Win32 (AMD64) //バージョン10.1.34
mysqlパスワード初期設定
まずはmysqlのパスワードを自分で設定しておきます。
1. XAMPPコントロールパネルを開いてapacheとMySQLを起動する
2. [Shell] をクリックする
初回は「シェルを新規作成しますか?」的なダイアログが出るのでそれに同意しておく。
3. mysqlにログインする
$ cd mysql\bin
$ mysql -u root
4. 任意のパスワードを設定する
$ set password=password('*****');
$ quit
次に設定ファイルを開き、上記で自分が設定したパスワードを記載していきます。
- 以下設定ファイルを開く
\phpMyAdmin\config.inc.php
2. 以下の記述箇所を探し、パスワード設定を書き換える
/* Authentication type and info */
$cfg[‘Servers’][$i][‘auth_type’] = 'config';
$cfg[‘Servers’][$i][‘user’] = 'root';
//$cfg[‘Servers’][$i][‘password’] = '';
$cfg[‘Servers’][$i][‘password’] = '*****'; //ここに自分で決めたパスワード*****を記載
$cfg[‘Servers’][$i][‘extension’] = 'mysqli';
$cfg[‘Servers’][$i][‘AllowNoPassword’] = true;
3. XAMMPを再起動する
よくあるエラー対処Tips
XAMMPを使っている時にmysql周りで自分が遭遇したエラーのまとめです。
mySQLが壊れて立ち上がらない
症状・原因
まれによくある、本当に何もしていないのに壊れたという奴。
Apacheは立ち上がるのにmySQLが立ち上がらないのが特徴です。
この現象の原因については自分ではよくわかっていません。
誰かご存じの方がいましたら教えてください…。
こんなエラーメッセージが出ます。
8:42:37 [mysql] Error: MySQL shutdown unexpectedly.
8:42:37 [mysql] This may be due to a blocked port, missing dependencies,
8:42:37 [mysql] improper privileges, a crash, or a shutdown by another method.
対応
下記手順により復旧できます。
1. mysql/data フォルダを mysql/data_old にリネームする
2. mysql/backup フォルダをコピーし、mysql/data にリネームする
3. mysql/data_old から mysql/data へ中身を移動する
- mysql/data に既に存在するものは上書きしない
- とりあえずここで移動させるのはフォルダだけにしておく
4. mysql/data_old/ibdata1 を mysql/data に移動する
5. Apache と SQL を再起動し、立ち上がることを確認する
6. SQL Admin などに接続テストを行う。
エラーなどが特に出なければここで復旧完了です。
7. もしパスワード不一致などのDB接続エラーが発生したら、以下フォルダをmysql/data_old から mysql/data へコピーしてきて上書きする
mysql/data_old/mysql
mysql/data_old/performance_schema
mysql/data_old/phpmyadmin
8. もし「Table doesn't exist in engine」エラーが出たら、以下も同様にコピーしてきて上書きする
mysql/data_old/ib_logfileXX
参考
- https://stackoverflow.com/questions/18022809/how-to-solve-error-mysql-shutdown-unexpectedly
- https://stackoverflow.com/questions/38759870/xampp-mysql-table-doesnt-exist-in-engine-1932
日本語を含むレコードがINSERTできない
症状・原因
日本語を含むレコードがINSERTできず、INSERTできても値が「??」となる現象です。
XAMMPインストール後やDB新規作成時、mysqlの初期設定を入れ忘れているとこれと出会う羽目になります。
こんなエラーメッセージが出ます。
1366 Incorrect string value …
対応
下記手順によりテーブルの文字コード設定を変更します。
1. XAMMPコントロールパネルからmysql[Admin]を開く
2. データベース全体の文字コードを変更する場合は、ホーム>操作メニューを開く。
個別テーブルの文字コードを変更する場合は、サイドバーから テーブル選択>操作メニューを開く。
3. 照合順序を「utf8_general_ci」などに変更
4. 念のためテーブルごとに 構造>照合順序 を確認してカラムごとに「latin1_swdish_ci」などになっているものが無いかを確認
5. もし手順4で該当するカラムがあれば、構造>該当カラム列の右側「変更」ボタンから照合順序を「utf8_general_ci」などに変更する
参考
ユーザー権限が無くDBに接続できない
症状・原因
これもXAMMPインストール後やDB新規作成時、mysqlの初期設定を入れ忘れたことで起きることがほとんどかと思います。
対応
下記手順によりユーザーにDB操作権限を与えます。
1. phpMyAdmin に管理者ユーザーでログインしたあと、画面上部の「ユーザーアカウント」をクリック
2. 権限を変更したいユーザーの行に表示されている「権限を編集」をクリック
3. DB個別に設定したい場合は、画面上部「グローバル」ボタンの右隣に表示されている「データベース」ボタンをクリック
4. まだ権限が一つも設定されていないデータベースに権限を追加する場合は、セレクトボックスから選択して「実行」をクリック
5. 与えたい権限にチェックを入れる。
大抵は「データ」欄にある「SELECT」「INSERT」「UPDATE」かと思います。
6. 画面下部の「実行」をクリックして完了
phpMyAdminの操作手順の備忘録として書きましたが、クエリ実行画面から普通にコマンド実行しても大丈夫です。
GRANT SELECT, INSERT, UPDATE ON `table_name`.* TO 'user_name'@'localhost';
参考