ラベル MySQL の投稿を表示しています。 すべての投稿を表示
ラベル MySQL の投稿を表示しています。 すべての投稿を表示

2016年4月26日火曜日

mysqlのレストア

Linuxのmysqldumpでとったダンプを、WindowsのXAMPPのmysqlにレストアしようとすると「ERROR 1064 (42000) なんちゃら~」とエラーが出る。(冷や汗)
何も考えずに取ったダンプファイルなのでどうやら文字コードの問題らしい。

Linux側はUTF8なのでWindowsもあわせてやろうとmy.confでクライアントの設定をutf8とかにしてみてもダメ。
コマンドラインのオプションで指定するといけた。


文字コード指定のオプション
--default_character_set utf8

Linuxでダンプ
mysqldump データベース名 -u ユーザ名 -p > ダンプファイル

Windowsでレストア
mysql データベース名 -u ユーザ名 -p --default_character_set utf8  < ダンプファイル




2012年6月25日月曜日

max_allowed_packet

クエリーやデータが大きくてmax_allowed_packetのエラーが出る場合

ふつうは、my.conf, my.ini等のmax_allowed_packetの値を変更してmysqldの再起動ですが、my.confをいじれないが、mysqlの特権などはある場合。(主にホスティングサーバでphpmyadmin上から利用している場合など)


max_allowed_packetの確認。

SHOW VARIABLES LIKE 'max_allowed_packet';


max_allowed_packetの変更。

SET GLOBAL max_allowed_packet=16*1024*1024;



2010年5月25日火曜日

MySQL最初の設定やバックアップ

PostgreSQL使いだしてからは、MySQLはあんまり触らなくなりました。
そうすると使い方忘れてしまって大変。

■簡単なセットアップ
・シェルのコマンドプロンプト
root権限でログイン

> mysql -u root -p

・以後mysqlのコマンドプロンプト
データベースの作成(文字コートUTF8、照合順序utf8_unicode_ci)

> create database データベース名 character set utf8 collate utf8_unicode_ci;

localhost接続からのデータベースユーザの作成(ユーザ名hoge、localhostから接続)

> create user 'hoge'@'localhost' identified by 'パスワード';

作成したユーザに作成したデータベースの全権を与える

> grant all on 'データベース名'.* for 'hoge'@'localhost';

mysqlコマンドライン終了
> \q

■データベースのダンプとレストア
シェルのコマンドプロンプト

ダンプ
> mysqldump データベース名 -u ユーザ名 -p > ダンプファイル名

レストア
(drop database & create databaseをした後に行う)
>mysql データベース名 -u ユーザ名 -p < ダンプファイル名