- 追加された行はこの色です。
- 削除された行はこの色です。
データベースの備忘録
[[旧メモ>DBFromOldHtml]]を移植の予定。
#contents
* [[日本語Wordnet:http://www5.atpages.jp/necross/paper/thesaurus.html]] [#hecacbf4]
*MySQL [#gbdb8351]
-[[MySQL_ファイルからDB作成]]
* JAVA との連携 [#cd14ba35]
-[[DB_JDBC]]
* VC++でsqlite3 [#v6b142ea]
[[面白いページ:http://marupeke296.com/SQLITE_main.html]]があった
[[Sqlite3:http://www.3rd-impact.net/Document/SQLite/Translation/Current/]]
MySQL
-----
*DBの修復 [#ea0cd5c8]
ERROR 1577 (HY000) at line 1: Cannot proceed because system
tables used by Event Scheduler were found damaged at server start
$ mysql_upgrade -uroot -p
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/run/mysqld/mysqld.sock'
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/run/mysqld/mysqld.sock'
Running 'mysql_fix_privilege_tables'...
OK
Could not create the upgrade info file
'/var/lib/mysql/mysql_upgrade_info' in the MySQL Servers datadir,
errno: 13
* DBのパスワード [#wc56cdfa]
ほかのmysqlサーバからデータを移行した場合 userテーブルが書き換えてしまい以下のような事態が生じたら
[sudo] password for ishida:
* Stopping MySQL database server mysqld
...fail!
* Starting MySQL database server mysqld
...done.
debian-sys-maitはデフォルトのメンテナンスユーザで Debianシステム上のメンテナンススクリプトで使われてます。
sudo grep password /etc/mysql/debian.cnf
password = ************
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'pswd' WITH GRANT OPTION;
FLUSH PRIVILEGES;
* DB 全体のバックアップ [#lc5b5dd7]
[[ここ:http://nobuit.blog56.fc2.com/blog-entry-79.html]]など参考
- バックアップ
$ mysqldump --user=mysql --password --socket -x ?F --all-databases >
/var/tmp/sampledb.dmp
- リストア
$ mysql < /var/tmp/sampledb.dmp
* データベースのバックアップ [#j804cb54]
# mysqldump -u** -p** -C -Q -e -a dbname > back.sql
# mysql -u** -p** --default-character-set=utf8
dbname < /home/user/back.sql
* 表のバックアップ [#k544e011]
# mysqldump -u root -p --database mydb --tables mytbl > mydb_mytbl.sql
mydb_mytable.sqlというファイルができている.
エディタで中が見れる。復元は
# mysql -u root -p --database mydb < mydb_mytbl.sql
* AUTO_INCREMENT の値 [#l9671742]
INSERT INTO TABLES () VALUES(); の直後に
mysql> SELECT LAST_INSERT_ID();
PHPなら
$dbc=mysql_connect("localhost","root","")
or die("MySQL接続失敗 :".mysql_error());
$res= mysql_query("SELECT LAST_INSERT_ID()", $dbc)
or die("ID取得失敗 :".mysql_error());
$dat=mysql_fetch_row($res);
print_r($dat);
$insert_id=$dat[0];
printf("最後に挿入されたレコードのIDは、%d<br />\n",
$insert_id);
*[[MySQL_install]] [#db23cde3]
*[[MySQL_ファイルからDB作成]] [#md1ff91a]
*[[MySQLチューニング関係]] [#n54176c4]
*[[MySQL全文検索]] [#q01b208b]
JAVA
------------
* [[DB_JDBC]] Java [#ace2b0c3]