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

2019年1月31日木曜日

MySQL 外部サーバからのアクセス権限追加



# 付与済みの権限の確認
mysql> show grants for 'user1'@'192.168.4.10';
+--------------------------------------------------------------------------------------------------------------------+
| Grants for user1@192.168.4.10                                                                                   |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user1'@'192.168.4.10' IDENTIFIED BY PASSWORD '*EFCDCAF0F0A39E39459EB2XCFDREWOKSIX1D' |
| GRANT ALL PRIVILEGES ON `my_shop_app_development`.* TO 'user1'@'192.168.4.10'                                |
| GRANT ALL PRIVILEGES ON `my_shop_app_production`.* TO 'user1'@'192.168.4.10'                                 |
+--------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

# ログインはできるので、新しいデータベースの使用権限を追加
mysql> GRANT ALL PRIVILEGES ON `my_blog_production`.* TO 'user1'@'192.168.4.10';
Query OK, 0 rows affected (0.16 sec)

# 追加できた
mysql> show grants for 'user1'@'192.168.4.10';
+--------------------------------------------------------------------------------------------------------------------+
| Grants for user1@192.168.4.10                                                                                  |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user1'@'192.168.4.10' IDENTIFIED BY PASSWORD '*EFCDCAF0F0A39E39459EB2XCFDREWOKSIX1D' |
| GRANT ALL PRIVILEGES ON `my_blog_production`.* TO 'user1'@'192.168.4.10'                                   |
| GRANT ALL PRIVILEGES ON `my_shop_app_development`.* TO 'user1'@'192.168.4.10'                                |
| GRANT ALL PRIVILEGES ON `my_shop_app_production`.* TO 'user1'@'192.168.4.10'                                |
+--------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.00 sec)

2015年1月7日水曜日

【Rails】Parallelで並列処理すると"DEPRECATION WARNING: Database connections will not be closed automatically, please close your database connection at the end of the thread by calling `close` on your connection. For example: ActiveRecord::Base.connection.close" と警告がでる

 ループ処理の高速化のためParallelでマルチスレッドにすると、処理後に、「DEPRECATION WARNING: Database connections will not be closed automatically, please close your database connection at the end of the thread by calling `close` on your connection. For example: ActiveRecord::Base.connection.close」という警告がでる。
コネクションを自分で閉じろとな、ふむふむ。言わんとしていることは分かるので、警告に従いclose処理をいれる。


Parallel.map_with_index( array, :in_threads=> 4 ) do | data, idx |
begin
# やりたい処理
rescue => ex
Rails.logger.error "エラーです。"
ensure
ActiveRecord::Base.connection.close
end
end

しかし警告は消えない。ホワイ? 結局解決方法はみつからず。しかし何回動かしてもプログラムの動作には
問題ないし、接続先のDBで接続すうを見てみると。

プログラム実行時


mysql> show status like 'Threads_connected';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_connected | 24 |
+-------------------+-------+
1 row in set (0.01 sec)

プログラム終了後


mysql> show status like 'Threads_connected';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_connected | 14 |
+-------------------+-------+

プログラム終了後に接続数はちゃんと減っているので大丈夫なんではないだろうか。