Linux:MySQLのmax_allowed_packetの値を変更する

LinuxサーバでMySQLmax_allowed_packetの値を変更した際の方法をメモします。

MySQLのmax_allowed_packetで設定している値よりも大きいデータをサーバに送った時に、
エラーになってしまうことがあります。

エラーになってしまう場合は、パケットの最大の値を変更する必要があります。
MySQLでサーバに送るパケットの最大は16MBです。

下記に変更手順を記載します。


MySQLのmax_allowed_packetの値を変更

SSHでサーバにログインし、MySQLに接続します。

mysql -u root -p

最大のパケット値を確認する場合は下記を実行します。

show variables like 'max_allowed_packet';

実行するとmax_allowed_packetの設定値が表示されます。

※1MBの場合

mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)

max_allowed_packetの値を変更する場合は「my.cnf」を編集します。

vi /etc/my.cnf

max_allowed_packetの値を「16MB」に変更します。

max_allowed_packet=1MB

↓ 変更

max_allowed_packet=16MB

編集を保存し、MySQLを再起動します。

/etc/init.d/mysqld restart

再起動後、MySQLに接続しmax_allowed_packetの値を確認します。

mysql> show variables like 'max_allowed_packet';
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| max_allowed_packet | 16777216 |
+--------------------+----------+
1 row in set (0.00 sec)

max_allowed_packetの値が変更されていればOKです。


MySQLでデータが大き過ぎてエラーが出てしまう場合は、
max_allowed_packetの値を確認すると解決するかもしれないです。

HTML:スマホでフォームの入力モードを切り替える

HTMLで入力フォームを作成する場合、inputタグに「type=”text”」や「type=”password”」など
入力項目にあったtype属性を指定して作成します。

スマホ(スマートフォン)やタブレットでフォームの入力を行う際に
入力キーボードの切り替えなど、意外と大変な場合があります。

HTML5で追加されたinputタグのtype属性を使用すると
type属性によって入力モード自動的切り替えることができます。

数字のみ入力を行う場合などは数字入力用のキーボードが表示された方が、
ユーザーにとって使いやすいものになります。

下記にinputタグのtype属性を変更して、スマホタブレットでのフォームの入力モードを切り替えた時のメモを記載します。


スマホ入力モード切り替え

※画像はiPhoneで撮影しています。

type=”text”

<input type="text" />

input_type_text

通常のテキスト入力用のキーボードが表示されます。


type=”password”

<input type="password" />

input_type_password

パスワード入力用のキーボードが表示され、文字は伏字になります。


type=”email”

<input type="email" />

input_type_email

キーボードにアットマーク「@」、ドット「.」が表示されます。


type=”tel”

<input type="tel" />

input_type_tel

電話番号入力用のテンキー表示されます。


type=”url”

<input type="url" />

input_type_url

キーボードに「.com」、ドット「.」、スラッシュ「/」が表示されます。


type=”number”

<input type="number" />

input_type_number

数字・記号入力用のキーボードが表示されます。


type=”date”

<input type="date" />

input_type_date

日付入力用の選択キーボードが表示されます。


type=”datetime”

<input type="datetime" />

input_type_datetime

日付・時間入力用の選択キーボードが表示されます。


※上記以外のtype属性もあります。

ユーザーが入力しやすいように自動的に入力モードが切り替われば
入力がとても楽になり、快適に操作してもらえるようになると思います。

今回はiPhoneでしか確認していないので、Androidなども今度確認してみたいと思います。


PHP:スクリプト実行時のタイムアウト時間を変更「max_execution_time」

PHPで大量のデータを処理する時にタイムアウト強制終了)してしまうことがあります。

タイムアウトする時間を設定する場合は、php.inimax_execution_timeの値を変更します。

システムの処理内容によっては、重い処理を行わなければいけないことがあります。
その場合は、max_execution_timeを調整しタイムアウト時間を変更すればエラーを回避することができます。

下記にphp.inimax_execution_timeの値を変更し、スクリプトタイムアウト時間実行時間)を変更した時の方法をメモします。


php.iniのタイムアウト時間を変更

SSHでサーバにログインします。

ログイン後、php.iniを編集します。

vi /etc/php.ini

max_execution_timeの値は秒単位で指定します。

max_execution_time = 30

↓変更

max_execution_time = 120

Apacheを再起動すれば反映されます。

/etc/init.d/httpd restart

■ タイムアウトの時間を無制限にする場合

タイムアウトの制限をかけずに無制限に設定する場合は
max_execution_timeの値を「0」に設定します。

max_execution_time = 0

上記の方法でスクリプトのタイムアウトする時間を調整することができます。

しかし、max_execution_timeはサーバの負荷を防止する為にあるので、
無制限に設定したり、大き過ぎる値を設定するなどは避けた方がいいと思います。

プログラムでバグがあった場合、長時間処理を実行して強制終了せずに
スクリプトが動いてしまうという可能性があるからです。

PHP:php.iniのメモリ「memory_limit」の値を変更

PHPで開発している時にメモリmemory_limit)の上限を変更したい場合があります。

memory_limitの値が低い場合、処理内容によっては「Fatal error」になってしまうことがあります。
その場合、php.iniで設定しているmemory_limitの値を大きくすればエラーを回避することが可能です。

下記にphp.inimemory_limitの値を変更し、メモリの上限を増加させた時の方法をメモします。


php.iniのメモリ上限を変更

SSHでサーバにログインします。

ログイン後、php.iniを編集します。

vi /etc/php.ini

「memory_limit」で検索すると値が設定されています。
設定されている値を変更し、保存します。

memory_limit = 128M

↓メモリ上限を変更

;memory_limit = 128M
memory_limit = 256M

Apacheを再起動すれば反映されます。

/etc/init.d/httpd restart

メモリの上限を無制限にする場合

メモリの制限をかけずに無制限に設定する場合は
memory_limitの値を「-1」に設定します。

memory_limit = -1

WordPress:ログイン時のユーザー名を変更する方法

WordPress管理画面ログインする時のユーザー名変更する方法をメモします。

WordPress_login_user1

ログイン時のユーザー名を変更しようとした際に
プロフィール画面で変更しようと思ったらユーザー名は変更できない状態でした。

WordPress_login_user2

ユーザー名は変更できません。
と記載されています。

WordPressのユーザー名は変更できない仕様のようです。

もし、ユーザー名を変更したい場合は新規にユーザーを追加して、
前のユーザーを削除するようにしなければいけません。

その時の手順と注意点を下記に記載します。


WordPress ユーザー名の変更手順

変更するユーザー名でWordPressにログインします。

「ユーザー」から「新規追加」をクリックします。

WordPress_login_user3

「新規ユーザーを追加」画面で新しいユーザー名でユーザーを作成します。

※権限グループを絶対に「管理者」で作成してください。

WordPress_login_user4

ユーザーの作成が完了したら、管理画面からログアウトします。

ログアウトしたら、新しく作成したユーザーでWordPressにログインします。

「ユーザー一覧」画面で元々ログインしていたユーザーを削除します。

WordPress_login_user5

「削除」をクリックすると「ユーザーの削除」画面に遷移します。

「ユーザーの削除」画面で「すべてのコンテンツを以下のユーザーのものにする」にチェックを入れます。

※「すべてのコンテンツを以下のユーザーのものにする」にチェックを入れないと記事などのデータが消えてしまうので注意です。

次に「削除を実行」ボタンをクリックし、ユーザーを削除します。

WordPress_login_user6

ユーザーの削除が完了すればOKです。

次からは新しく作成したユーザー名でログインすることができます。


WordPressのユーザー名が「admin」の場合などはセキュリティ的にあまりよくないので、
上記の方法で変更することをオススメします。