VPSサーバーのMySQLの初期設定状態を確認し、セキュリティ的に問題のある設定項目は修正します。
管理人の環境は、”お名前.com”のVPSサーバーでCentOS6.2です。
MySQLのパッケージの確認
MySQLのどのパッケージがインストールされているか確認します。
(実行例)
$ rpm -qa | grep mysql
mysql-5.1.67-1.el6_3.x86_64
mysql-devel-5.1.67-1.el6_3.x86_64
php-mysql-5.3.3-14.el6_3.x86_64
mysql-libs-5.1.67-1.el6_3.x86_64
mysql-server-5.1.67-1.el6_3.x86_64
設定ファイルの保存場所の確認
(実行例)
$ rpm -qc mysql-libs
/etc/my.cnf
起動スクリプトの配置場所の確認
(実行例)
$ rpm -ql mysql-server | grep init
/etc/rc.d/init.d/mysqld
MySQLアカウントの初期状態
デフォルト状態では、”root”ユーザーと匿名ユーザー(ユーザー名を指定せずにMySQLサーバーに接続できる)がパスワードを設定せずに作られています。
MySQLサーバーに接続する際は、通常は(ユーザーにパスワードが設定されている)
“mysql -u ユーザー名 -p”
と入力してパスワードを入力しますが、初期状態では、
“mysql -u root”や”mysql”(匿名ユーザー、ユーザー名を指定しない)と入力しただけで接続できる状態になっています。
(匿名ユーザーの実行例)
$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 30
:
初期状態の設定確認
MySQLサーバーが起動していない場合は、”/etc/rc.d/init.d/mysqld start”で起動します。
MySQLの”root”ユーザーでサーバーに接続し、ユーザーの設定状況を確認します。
(実行例)
$ mysql -u root
mysql> SELECT Host, User,Password FROM mysql.user;
+--------------------+---------------+-------------+ | Host | User | Password | +--------------------+---------------+-------------+ | localhost | root | | | test.example.com | root | | | 127.0.0.1 | root | | | localhost | | | | test.example.com | | | | 127.0.0.1 | | | +--------------------+---------------+-------------+
“root”ユーザー、匿名ユーザー(User欄が空欄)のパスワード欄が空欄になっています。
MySQLのrootユーザーにパスワード設定
上記の各ホスト(localhost,test.example.com,127.0.0.1)のrootユーザーに対してパスワードを設定します。
(実行例)パスワードを’newpwd’とした場合
mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpwd’);
mysql> SET PASSWORD FOR ‘root’@’test.example.com’ = PASSWORD(‘newpwd’);
mysql> SET PASSWORD FOR ‘root’@’127.0.0.1’ = PASSWORD(‘newpwd’);
匿名ユーザーにパスワード設定、または匿名ユーザーを消去
下記手順参照
セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除
設定後の確認
・パスワードが設定されているか確認
mysql> SELECT Host, User,Password FROM mysql.user;
パスワード欄に文字列が入力されている事を確認します。
・MySQLサーバーへの接続確認
mysqlコマンドラインを一度終了し、再度、パスワードを指定してログインできるか確認します。
(実行例)
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
: 関連記事の目次
-
インストール、基本設定、文字コード、仕組み
- MySQLのインストール
- CentOS6でMySQL5.1からMySQL5.7へアップデートする手順、注意点
- CentOS6.10でMySQL5.7からMySQL8へアップデートする手順、注意点
- MySQLサーバーの起動スクリプト(v5.1)
- MySQLのファイルシステムとストレージエンジンの概要
- MySQLのデータ型の概要
- MySQLのサーバー、データベース、テーブル、カラムの文字コード設定とクライアントからのサーバー接続時の文字コード設定
- MySQLの”LOAD DATA INFILE”などでCSVファイル入出力時の文字コード、権限などの注意点
- セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除
- CentOS6にphpMyAdminを導入
- MySQLのbツリーインデックスの概要とマルチカラムインデックス
- MySQLのプレフィックスインデックス、FULLTEXTインデックスの概要
- MySQLのEXPLAINの実行例
- MySQLのインデックス結合の概要
- MySQLのSelect文でインデックスのカラムのみ取得する場合のメリット
- MySQLのORDER BY句でインデックスを使用
- MySQLのPACK_KEYSオプション
- MySQLのインデックス統計更新の概要
- MySQL初期設定確認
- mysqladminコマンドでMySQLサーバーの状態確認
- mysqlshowコマンドで簡単にデータベース、テーブル定義の確認
- awkを使ってmysqlshowの必要な列のみ表示
- MySQLのスロークエリログの概要と表示方法
- show profileでクエリーの内部処理時間を調査
- MySQL Benchmark Suiteによるパフォーマンス測定
- MySQLの診断、監視に利用できる外部ツール
- WordPressデータベースのバックアップとリストア
- Bashスクリプトでmysqldumpバックアップと世代管理
- MySQLの壊れたテーブルのチェック、修復方法
- MySQLのインデックス統計更新の概要
- MySQLのフラグメンテーションの概要と改善方法
- MySQLのスレッド、コネクションに関する設定値、チューニング
- MySQLのセッション単位に設定するバッファーサイズ
- MySQLのクエリキャッシュの設定値、パフォーマンス
- MySQLのテーブルオープン、クローズとテーブルキャッシュのチューニング
- MyISAMキーキャッシュの概要とチューニング
- MySQLのソートに関する設定値とステータス
- MySQL innoDBの性能関連の設定値とステータス確認
- MySQL MyISAMの性能関連の設定値とステータス確認
インデックス
状態確認、調査
バックアップ、リストア、メンテナンス
パフォーマンス、チューニング