Ruby on Railsã§ï¼DBã¸ã®å ¨æ¥ç¶ãå¼·å¶çã«åæããã ï¼Webã¢ããªããï¼sudoçµç±ã§ä»»æã®ã³ãã³ããå®è¡å¯è½ã«ããæ¹æ³ï¼
ãã¼ã¿ãã¼ã¹ã¸ã®æ¥ç¶ããå¼·å¶çã«åæãããã«ã¯ï¼ã©ãããããããã
ç°å¢ã¯ï¼Linuxä¸ã§ï¼Ruby on RailsããPostgreSQLã«ã¤ãªãã§ããå ´åãæ³å®ã
èãããæ¹å¼ã¯ï¼éãã
- ActiveRecordå´ããï¼DBæ¥ç¶ãåæãã
- PostgreSQLå´ããï¼DBæ¥ç¶ãåæãã
- OSå´ããï¼DBæ¥ç¶ãåæãã
ä½ãããããï¼
Webã¢ããªã®ç»é¢ä¸ããï¼ãã¼ã¿ãã¼ã¹ã®ãªã¹ãã¢ãè¡ãªãããã
ã¤ã¾ãï¼PostgreSQLã§è¨ãã¨
- dropdb
- createdb
- ãã³ããã¡ã¤ã«ãç¨ãããªã¹ãã¢
ã®ï¼æ®µéãï¼Webã¢ããªä¸ããå®è¡ãããã®ã ã
ããã§ï¼dropdbã¦ã¼ãã£ãªãã£ãå®è¡ããæç¹ã§ï¼ä¸è¨ã®ãããªã¨ã©ã¼ã«ééããï¼
dropdb: database removal failed: ERROR: database "hoge_db" is being accessed by other users
誰ããæ¥ç¶ä¸ã§å©ç¨ä¸ã®DBã¯ï¼dropã§ããªãã®ã ã
ããã¯dropdbã®ãããã«ï¼ä¸è¨ã®ããã«SQLã§è©¦ããå ´åãåãçµæã«ãªãã
psql postgres -c "DROP DATABASE hoge_db;" # => ERROR: database "hoge_db" is being accessed by other users
ãªã®ã§ï¼ãã¼ã¿ãã¼ã¹ãDROPããåã«ï¼
ã¾ããå
¨ã¦ã®æ¥ç¶ãåæãããå¿
è¦ãçããã
ï¼ï¼ï¼ActiveRecordå´ããï¼DBæ¥ç¶ãåæãã
Ruby on Railsã®APIããã¥ã¡ã³ããè¦ãã¨ï¼disconnect()ã¡ã½ãããåå¨ããã
Class ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#disconnect!()
http://ar.rubyonrails.org/classes/Act...
- Close the connection.
Railsã®ãã¼ã¸ã§ã³ãå¤ãå ´åã¯ï¼èªåã§disconnect()ãå®ç¾©ããã
If you want to disconnect a database properly, there is the code:)!!!
http://osdir.com/ml/lang.ruby.rails/2...
- postgresql_adapter.rbã«disconnect()ã¡ã½ãããå®ç¾©ããã
- connection_specification.rbã«clear_connection()ã¡ã½ãããå®ç¾©ããã
- â»ãã®äººã¯ï¼ãã®æ å ±ãæ稿ããåã«ï¼ä¸è¨ã®ãã©ã¼ã©ã ã§è³ªåãã¦ããã
- http://www.ruby-forum.com/topic/52012 (Helps!!!!! Rails database connection guru needed!!!!!!!)
remove_connection()ã¨ããã®ãããã
ãããå®éã«ã¯ï¼æ¥ç¶ãå®å ¨ã«éãããã¨ãã§ãã¦ããªãã
ActiveRecord::Base#remove_connection()
http://apidock.com/rails/v1.2.6/Activ...
Remove the connection for this class. This will close the active connection and the defined connection (if they exist).
Ruby/ActiveRecordã§åçã«æ¥ç¶å ãå¤æ´ãã
http://yakinikunotare.boo.jp/orebase/...
- remove_connectionãã£ã¦ã¡ã½ããã使ãããã ãªã¨æã£ã¦ establish_connectionã¨äº¤äºã«ããã°ã§ããããããªããã¨æã£ããã ãã»ã»ã»ãªããã§ããªãã
How to disconnect to a database????
http://www.ruby-forum.com/topic/51636
while we try to disconnect our database connection with
ActiveRecord::Base.remove_connection(), we find out
that the connection is not closed (the function seems
not to be working perfectly) and we are still
connected to the database and able to access to the
tables.
ã¨ããã§ï¼ãããã®æ¹æ³ã¯ãç¾å¨ã®HTTPãªã¯ã¨ã¹ãããä¸å¿ã«è¦ãèãæ¹ã
ãç¾å¨ã®ãªã¯ã¨ã¹ãç¨ã®æ¥ç¶ãåæãããã ãã
ç¹å®ã®DBã«å¯¾ããããã¹ã¦ã®æ¥ç¶ãåæããããã¨ã¯ï¼ããã§ã¯ã§ããªãã
ï¼ï¼ï¼PostgreSQLå´ããï¼DBæ¥ç¶ãåæãã
ç¹å®ã®DBï¼ã®ä¸ã®ï¼ç¹å®ã®ã¹ãã¼ãï¼ã«å¯¾ããããã¹ã¦ã®æ¥ç¶ãåæãããããã«ã¯ï¼
Railsã®è¦ç¹ã§ã¯ãªãï¼DBå´ã®è¦ç¹ã§èããå¿ è¦ãããã
ã¾ãï¼ç¹å®ã®ãã¼ã¿ãã¼ã¹ã¸ã®å ¨ã¦ã®æ¥ç¶ç¶æ³ã確èªãããã¨ã¯ï¼
ä¸è¨ã®ãããªã·ã¹ãã ã«ã¿ãã°ãåç §ããSQLã«ãã£ã¦å¯è½ã
SELECT * FROM pg_stat_activity ;
PostgreSQL/8.x/ãã¼ã¿ãã¼ã¹ã¸ã®æ¥ç¶æ°ã確èªããSQL
http://www.lovebug.jp/index.php?Postg...
ãããã®æ¥ç¶ãå¼·å¶çã«çµäºããããã¨ã¯ï¼ä¸è¨ã®DB管çç¨ã®é¢æ°ã«ãã£ã¦å¯è½ã
- pg_cancel_backend()
- PostgreSQL 8.3以åã§ãå©ç¨å¯è½ã
- IDLEãªæ¥ç¶ãåæã§ããªãã
- pg_terminate_backend()
- PostgreSQL 8.4以éã§å©ç¨å¯è½ã
- IDLEãªæ¥ç¶ã§ãåæã§ããã
pg_cancel_backend()ã®ä½¿ãæ¹ï¼
SELECT pg_cancel_backend( procpid ) FROM pg_stat_activity WHERE usename = 'ç¹å®ã®ã¦ã¼ã¶å' ;
killing the query with the built in functions
http://postgis.refractions.net/piperm...
Is there a way to kill a connection from the pg_stat_activitly list?
http://www.issociate.de/board/post/46...
- "select pg_cancel_backend(procpid) " can end the current query for that user, but then this connection becomes IDLE, still connected.
- From the command line on the server you can issue a kill pid to do that.
9.20. System Administration Functions
http://www.postgresql.org/docs/8.1/st...
pg_cancel_backend sends a query cancel (SIGINT) signal to a backend process identified by process ID. The process ID of an active backend can be found from the procpid column in the pg_stat_activity view, or by listing the postgres processes on the server with ps.
Postgresql 8.0 and Cancel/Kill backend functions
http://www.mail-archive.com/pgsql-gen...
- åæã«ãã£ã¦è¡¨ç¤ºãããã¨ã©ã¼ã¡ãã»ã¼ã¸ï¼
- Session 1: ERROR: canceling query due to user request
pg_terminate_backend()ã«ã¤ãã¦ï¼
pg_terminate_backend() ã§å¼·å¶åæ
http://lets.postgresql.jp/documents/t...
- 以åãã pg_cancel_backend() é¢æ°ã¯åå¨ãã¦ããã®ã§ãããããã¯å®è¡ä¸ã®ã¯ã¨ãªãåãæ¶ããã¨ããã§ãã¾ããããIDLE in transactionãç¶æ ã«ãªã£ã¦ããæå³ããªããã³ã°ãã©ã³ã¶ã¯ã·ã§ã³ãåãæ¶ãã«ã¯ãSIGTERM ã·ã°ãã«ãç´æ¥çºè¡ããå¿ è¦ãããã¾ããã
- pg_terminate_backend() é¢æ°ã¯åæã SQL ããå®è¡ã§ããã®ã§ãããå®å ¨ã§æ±ãã容æã§ã
çµå±ï¼PostgreSQL 8.3ããã以åã®ãã¼ã¸ã§ã³ãå©ç¨ãã¦ããå ´åã¯ï¼
DBå´ã®é¢æ°ã«ãã£ã¦ãå
¨ã¦ã®æ¥ç¶ãåæããããã¨ã¯ã§ããªãã
ï¼ï¼ï¼OSå´ããï¼DBæ¥ç¶ãåæãã
ããã¾ã§ã§
- Webã¢ããªã±ã¼ã·ã§ã³ã®è¦ç¹
- DBã®è¦ç¹
ã§èãã¦ï¼æ¹æ³ãæ¢ç´¢ãã¦ããã
ããã§ãã ãã ã£ãã®ã§ï¼
次ã¯ï¼è¦éãDBãããä½ãã¬ã¤ã¤ã«ç§»ãã¦èããå¿ è¦ãããã
ã¤ã¾ãï¼OSã®è¦ç¹ã§èããã¨ããäºã
Linuxä¸ã§ï¼Postgresãèµ·åã¹ã¯ãªããããå©ç¨ãã¦ããå ´åï¼
ä¸è¨ã®ã³ãã³ãã«ãã£ã¦DBãåèµ·åã§ããã
/etc/init.d/pgsql restart
stopã§åæ¢ããã ãã§ãæ¥ç¶ã¯å ¨é¨ãªã»ããããããï¼
ããã¦stopã§ã¯ãªãrestartã¨ãã¦ããã®ã«ã¯çç±ãããã
ãªããªãï¼dropdbãcreatedbãªã©ã®ã¦ã¼ãã£ãªãã£ã¼é¡ãå¼ã³åºãããã«ã¯ï¼pgsqlãèµ·åãã¦ããå¿ è¦ãããã®ã ã
ããrestartã®ä»£ããã«stopã¨ããã¨ï¼dropdbå¼ã³åºãæã«ä¸è¨ã®ãããªã¨ã©ã¼ã«ãªã£ã¦ãã¾ãã
could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
ãªã®ã§stopã§ã¯ãªãrestartãã¦ããã
ãããï¼ãã®restartå®è¡ã®ããã«ã¯ï¼å®è¡ã¦ã¼ã¶ãï¼postgresã¦ã¼ã¶ãrootã¦ã¼ã¶ã¨ãã¦ãã°ã¤ã³ãã¦ããå¿ è¦ãããã
Webã¢ããªï¼Ruby on Railsï¼ã httpd ãªã©ã®å°ç¨èµ·åã¦ã¼ã¶ã§å®è¡ããã¦ããå ´åã¯ï¼ç´æ¥å®è¡ã§ããªãã
ãã®åé¡ãåé¿ããããã«ã¯ï¼sudoã«ãã£ã¦ä¸è¬ã¦ã¼ã¶ã«æ¨©éãä»ä¸ããã°ããã
sudoã¯Linuxä¸ã§RPMããã¤ã³ã¹ãã¼ã«ã§ããã
sudo rpm build for : CentOS 5
http://rpm.pbone.net/index.php3/stat/...
rpm -ivh sudo-1.7.2p1-10.el5.i386.rpm
ãã ãï¼sudoãå©ç¨éå§ããããã®ã¹ããããè¸ãããã«ã¯ï¼
ã¾ãã¯root権éã§ã®sudoå°å ¥ä½æ¥ãå¿ è¦ã«ãªãã
user 権éã§ã®rpm --rebuild
http://search.luky.org/vine-users.0/m...
- rpm ã®ãã¤ã³ã¹ãã¼ã«ã㯠root ã§ããã®ãåå
RPMããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ãã
http://itpro.nikkeibp.co.jp/article/C...
- ããã±ã¼ã¸ã®ã¤ã³ã¹ãã¼ã«ã«ã¯ï¼ã«ã¼ã権éãå¿ è¦
- ã¢ãããã¼ãã®å ´åãã«ã¼ã権éãå¿ è¦
ã½ã¼ã¹ããã®ã¤ã³ã¹ãã¼ã«æé
http://www.support-you.com/wiki/lpic/...
- make installã¯ã/usr/local以ä¸ãªã©æ¸ãè¾¼ã¿ã«root権éãå¿ è¦ãªå ´æã«ã¤ã³ã¹ãã¼ã«ããããã¨ãå¤ãã®ã§ãä¸è¬çã«root権éãå¿ è¦s
ãã¹ã¯ã¼ãå ¥åãªã㧠sudo ã³ãã³ããå®è¡ããæ¹æ³
http://blog.tofu-kun.org/070517085727...
- PHPãPerlã¹ã¯ãªãããªã©ã§ sudo ã使ãããå ´å
- /etc/sudoersã¨ããè¨å®ãã¡ã¤ã«ãç·¨éããã«ã¯å½ç¶ root 権éãå¿ è¦
ãªã®ã§ï¼rootã«ããæä½æ¥ãå®å
¨ã«é¿ãããã¨ã¯ã§ããªãã
ï¼ããrootæ¬äººã«ããä»å ¥ãæãã«ãã¦root権éãåå¾ã§ãããï¼ã»ãã¥ãªãã£ãæãç«ããªããªããï¼
å ¨ã¦ãWebã¢ããªããèªååãããã¨ã¯ï¼ä¸å¯è½ã
ããã§ã¯ï¼Webã¢ããªã®éç¨éå§åã«ï¼ãµã¼ãä¸ã§root権éã§ä½æ¥ãããã¨ãåæã¨ããã
sudoã®è¨å®ãã¡ã¤ã«ã§ãã /etc/sudoers ã®ç·¨éã®ãã¤ã³ãï¼
- ä¸è¨è¡ã追å
- Webãµã¼ãã®å®è¡ã¦ã¼ã¶å ALL=(ALL) NOPASSWD:ALL
- Defaults requirettyãã³ã¡ã³ãã¢ã¦ã
- Webãµã¼ãã¯ã端æ«ãã¨ããæ¦å¿µãæã£ã¦ããªãããï¼ãã®ã¾ã¾sudoãããã¨ããã¨ãstandard in must be a ttyãã®ã¨ã©ã¼ã«ãªãã
æ¸ãæããã ãã§æ¬¡åã®sudoå®è¡ããããã«åæ ãããã
sudoããsudo: sorry, you must have a tty to run sudoãã¨æå¥ãè¨ãã¨ãã¯
http://blog.cles.jp/item/2919
- Webã¢ããªããsudoãå®è¡ã§ããªãæï¼/etc/sudoersã®ãDefaults requirettyãã³ã¡ã³ãã¢ã¦ããããhttpdã¯ttyæã£ã¦ããªãã®ã§ã
standard in must be a tty
http://x68000.q-e-d.net/~68user/cgi-b...
- su ã¯ç«¯æ« (tty) ããã®ãã¹ã¯ã¼ãå ¥åãæ±ãã¦ããã®ã«ã端æ«ããªãããã¨ããæå³ã§ãã
- 端æ«ã¨ããã®ã¯ããã¼ãã¼ãã§å ¥åãã§ãã¦ãæåã表示ããããã®
âç¹å®ã³ãã³ãã®å©ç¨å¶é
http://www.atmarkit.co.jp/fsecurity/r...
- ã»ãã¥ãªãã£ä¸ã®çç±ãã¾ãã¯æä½ãã¹ã«ããå½±é¿ç¯å²ãæå°éã«æããããã«ãroot権éã«ããã³ãã³ãã®å®è¡ãç¹å®ã³ãã³ãã®ã¿ã«éå®ããã
- sudoã§ã¯root権é以å¤ã«ï¼ç¹å®ã®ã³ãã³ãã®ã¿å¯è½ã¨ãé¨åçãªå¶é+ç¹æ¨©ä»ä¸ãã§ãã
ããã§ï¼åé ã§è¿°ã¹ãç®çãæãããã¨ãã§ããã
DBã®å ¨æ¥ç¶ãåæ¢ããããã«ï¼root権éã§DBãåèµ·åããã
sudo /etc/init.d/pgsql restart
â»ãªãï¼ãã "/etc/init.d/pgsql restart" ã®ããã«å¼ç¨ç¬¦ã§ããã£ã¦ãã¾ãã¨ï¼ããå ¨ä½ãï¼ã¤ã®ã³ãã³ãã¨ã¿ãªããã¦ãã¾ãï¼sudoã®å®è¡ã«å¤±æããã
ããã§ï¼å¿ç½®ããªãdropdbãï¼createdbãï¼ãã³ããã¡ã¤ã«ããDBãåæ§ç¯ã§ããã
ã¤ã¾ãï¼Webã¢ããªä¸ããDBããªã¹ãã¢ã§ããã
ãªãï¼Railsã§acts_as_authenticatedãã©ã°ã¤ã³ãªããã使ã£ã¦ããå ´åï¼
ãã°ã¤ã³ã«å¿ è¦ãªã»ãã·ã§ã³æ å ±ã¯DBã«æ ¼ç´ãããã®ã§ï¼
ãªã¹ãã¢ç´å¾ã¯å¼·å¶çã«ã¢ããªãããã°ã¢ã¦ãããããã¨ã«ãªãã
ãããªã¹ãã¢ç´å¾ã«ç¡çãããµã¼ãã«ã¢ã¯ã»ã¹ãããã¨ããã¨ï¼ä¸è¨ã®ã¨ã©ã¼ã«ãªãã
ç»é¢ä¸ï¼ Weâre sorry, but something went wrong. Weâve been notified about this issue and weâll take a look at it shortly. ãã°ä¸ï¼ PGSQL ERROR: FATAL: terminating connection due to administrator command server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. ãï¼å¦çãããã¨ããSQLæï¼
ãã®ãããã®åé¡ã¯ï¼ãªã¹ãã¢å®äºæã«ãã©ã¦ã¶ä¸ã§ï¼
ãµã¼ããä»ããã«ãã¾ãå°ç¨ã®ãã¼ã¸ã«ãªãã¤ã¬ã¯ããã¦å¯¾å¦ããã
çµè«
ã¾ã¨ãã¨ãã¦ï¼ä»¥ä¸ã®ãããªæè¨ãå¾ãã
æè¨ï¼
- Webã¢ããªãé²åãã¦ããã¨ï¼ããããã¨é«åº¦ãªãã¨ãããããããªãã
- OSä¸ã®ãã¡ã¤ã«ãç´æ¥æä½ãã¨ã
- ç¹å®ã®ããã«ã¦ã§ã¢ãç´æ¥å®è¡ãã¨ãã
- ãã®ããã«ã¯ï¼ãOSä¸ã®ã³ãã³ããç´æ¥å®è¡ãã¨ããéãé¿ããããªãã
- ããã¦ï¼ãã®ããã«ã¯ï¼sudoã®å©ç¨ãé¿ããããªãã
ãµã¼ãä¸ã§ç¹æ®ãªæä½ãè¡ãªãããã®ã§ããã°ï¼ã©ããã¦ãsudoã®ãä¸è©±ã«ãªããã¨ãããã¨ã
sudoã使ãæ £ãã¦ããã°ï¼Webã¢ããªã®å¯è½æ§ã¯å¤§ããåºããã ããã
ï¼â»ã»ãã¥ãªãã£ä¸ã®ãªã¹ã¯ãåæã«åºãããã¨ã«ãªãã®ã§ï¼ã注æãã»ã»ã»ãï¼
è£è¶³
æ å ±ãæ¢ãã¦ããéï¼Railsã§ã¯ãªãå¥ã®ActiveRecordã«é¢ããæ å ±ãç´ãè¾¼ãã§å°ã£ãã
.NETã«ãActiveRecordã®å®è£ ãåå¨ãï¼åããCastle ActiveRecordãã¨ããã
ããã¯Ruby on Railsã®æ å ±ã§ã¯ãªãã®ã§ï¼é¤å¤ãã¦èããå¿ è¦ãããã
Castle ActiveRecord
http://www.castleproject.org/activere...
- The Castle ActiveRecord project is an implementation of the ActiveRecord pattern for .NET.
How I can disconnect to one database, and open new connection with Castle ActiveRecord?
http://stackoverflow.com/questions/38...
- ActiveRecordStarter.ResetInitializationFlag();
Railså
é¨ã§ã®ã³ãã¯ã·ã§ã³ã®ä½¿ãåãã«ã¤ãã¦ï¼
ActiveRecordã®ã½ã¼ã¹ã³ã¼ããèªã
http://blog.livedoor.jp/sasata299/arc...
- ActiveRecord ã§ã¯ 2.2 ããã³ãã¯ã·ã§ã³ãã¼ãªã³ã°ãå°å ¥ããã¦ãã
æ¥ç¶ãä¸åä¸åã¤ã¶ãã¦ããã¨ããã¢ããã¼ãã«ã¤ãã¦ï¼
- killã³ãã³ãã®å®è¡ã«ã¯root権éãå¿ è¦ãªã®ã§ï¼çµå±sudoã使ãç¹ã§ã¯å¤ãããªãã
postgres ã¸ã®ã¯ã©ã¤ã¢ã³ãããã®æ¥ç¶ãå¼·å¶åæãã ruby ã¹ã¯ãªãã
http://blog.champierre.com/archives/809
- postgres ã¸ã®æ¥ç¶ããã»ã¹ã® pid ã調ã¹ãsudo kill -9
pg_ctlçµç±ã§Postgresãå¼·å¶åæ¢
http://akio0911.net/archives/2745
- ãã¼ã¿ãã¼ã¹ã¸ã®æ¥ç¶ãæ®ã£ã¦ããããã«å¤±æï¼
- ERROR: DROP DATABASE: database âmastersâ is being accessed by other users / dropdb: database removal failed
- pg_ctl ã« -m f ãªãã·ã§ã³ãæå®ãããã©ã³ã¶ã¯ã·ã§ã³ãå¼·å¶çµäºãåèµ·åããå¾ã«ããã¼ã¿ãã¼ã¹ã®åé¤ãè¡ãã¾ãã
- âãã®å¾ã§.pidãã¡ã¤ã«ã®åé¤ã«æ¨©éãå¿ è¦ã«ãªãã
ã