DataBase の変更点 - RとLinuxと...

RとLinuxと...


DataBase の変更点


データベースの備忘録

[[旧メモ>DBFromOldHtml]]を移植の予定。

#contents
* [[日本語Wordnet:http://www5.atpages.jp/necross/paper/thesaurus.html#日本語WordNet]] [#hecacbf4]
* [[日本語Wordnet:http://www5.atpages.jp/necross/paper/thesaurus.html]] [#hecacbf4]

* 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]