• 文字サイズ変更
  • S
  • M
  • L
  • No : 12203
  • 公開日時 : 2016/12/10 16:11
  • 更新日時 : 2016/12/10 16:11
  • 印刷

CentOS6でのMySQLの設定(VPSクラウド)

回答

設定する内容

VPSクラウドのCentOS6には初期状態で「MySQL」というデータベースプログラムがインストールされています。「MySQL」を使用してデータベースサーバーを構築する場合はMySQLの設定を行って下さい。
オンラインマニュアルに記載されていない設定については弊社のサポート対象外となります。この例と異なるご利用形態でお使いになる場合はMySQLの設定方法について解説されている書籍・Webサイトなどをご参考に お客さまにて設定ファイルの内容を書き換えてご利用下さい。

  • MySQLサービスを起動し、パスワードの変更を行う。
  • 下記のデータベースとユーザを作成する。
    データベース名:data1
    ユーザ名 :dbuser

    ※上記は例となりますので、任意の名前を設定下さい。

MySQLの起動と初期パスワードの変更

  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. mysqldを起動します。
    現在のホスト名で初期化されます。(以下example.comの場合)
    [root@example ~]# service mysqld start
    Initializing MySQL database:  Installing MySQL system tables...
    OK
    Filling help tables...
    OK
    
    To start mysqld at boot time you have to copy
    support-files/mysql.server to the right place for your system
    
    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    
    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h example.com  password 'new-password'
    
    Alternatively you can run:
    /usr/bin/mysql_secure_installation
    
    which will also give you the option of removing the test
    databases and anonymous user created by default.  This is
    strongly recommended for production servers.
    
    See the manual for more instructions.
    
    You can start the MySQL daemon with:
    cd /usr ; /usr/bin/mysqld_safe &
    
    You can test the MySQL daemon with mysql-test-run.pl
    cd /usr/mysql-test ; perl mysql-test-run.pl
    
    Please report any problems with the /usr/bin/mysqlbug script!
                                                               [  OK ]
    Starting mysqld:                                           [  OK ]
    
  3. root@localhostのパスワードを変更します。初期状態で空白となっているパスワードを変更します。
    ※'パスワード'を任意の文字列に変更して下さい。
    [root@example ~]# mysqladmin -u root password パスワード
    
  4. mysqlにログインします。
    パスワードは前の手順で設定したパスワードです。

    [root@example ~]# mysql -u root -p
    Enter password: (パスワード)
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.1.67 Source distribution
    .
    .
    .
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
  5. root@127.0.0.1のパスワードを変更します。 初期状態で空白となっているパスワードを変更します。
    ※'パスワード'を任意の文字列に変更して下さい。
    mysql >  SET PASSWORD FOR root@127.0.0.1=password('パスワード');
    Query OK, 0 rows affected (0.00 sec)
    
  6. root@ホスト名のパスワードを変更します。
    初期状態で空白となっているパスワードを変更します。
    ※'ホスト名', 'パスワード'を任意の文字列に変更して下さい。
    mysql > SET PASSWORD FOR root@ホスト名=password('パスワード');
    Query OK, 0 rows affected (0.00 sec)
    

    ※ホスト名情報は以下コマンドにて確認できます。(以下example.comの場合)

    mysql> USE mysql;
    Database changed
    mysql> SELECT user,host,password FROM mysql.user;
    +------+--------------+-------------------------------------------+
    | user | host         | password                                  |
    +------+--------------+-------------------------------------------+
    | root | localhost    | *423B4F064CE2852B55AEC8E09CC8AFC135991862 |
    | root | example.com. | *35417AD9696FC8B598835E0795D218F1AF4C717F |
    | root | 127.0.0.1    | *DE8EB47E628634A63A4FE22274348660EC434DF4 |
    +------+--------------+-------------------------------------------+
    5 rows in set (0.00 sec)
    

データベースとユーザの作成

続けて、データベースとユーザを作成します。

  1. データベースdata1を作成します。
    データベース名'data1'は任意の名前に変更して下さい。
    mysql>CREATE DATABASE data1 DEFAULT CHAR SET UTF8;
    Query OK, 1 row affected (0.00 sec)
    
  2. データベースが作成されました。
    ※初期状態で information_schema、mysql、test という3つのデータベースが存在します。
    mysql>SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | data1              |
    | mysql              |
    | test               |
    +--------------------+
    
  3. dbuserというユーザを作成し、データベース(data1)の権限をを付与します。 ※ユーザ名'dbuser'及びデータベース名'data1'は任意の名前に変更して下さい。
    mysql> GRANT ALL ON data1.* TO dbuser@localhost IDENTIFIED BY 'パスワード';
    Query OK, 0 rows affected (0.00 sec)
    

自動起動の設定

OSの再起動と同時にMySQLを自動起動したい場合は、chkconfig でmysqldをon に設定して下さい。chkconfig の設定方法は、オンラインマニュアル内 サービスの自動起動設定に掲載しておりますのでご参照下さい。

以上で基本的なMySQLの設定は完了です。

MySQLのrootのパスワードの再設定

MySQLのrootパスワードを紛失した場合も、以下の手順で再設定が行えます。

  1. mysqld サーバーを停止します。
    [root@example ~]#service mysqld stop
    Stopping MySQL:                                            [   OK  ]
    
  2. セーフモードでmysqlを起動し,ログインします。
    [root@example ~]#/usr/bin/mysqld_safe --user=root --skip-grant-tables & 
    [1] 5128
    [root@example ~]# Starting mysqld daemon with databases from /var/lib/mysql
    [root@example ~]# mysql mysql
    
  3. パスワードを初期化します。
    mysql>update user set password=null where host='localhost' and user='root';
    Query OK, 1 row affected, 1 warning (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 1
    

    ※この時点でroot@localhostのパスワードは以下のように空白になっています。

    mysql>USE mysql;
    Database changed
    mysql>SELECT user,host,password FROM mysql.user;
    +--------+--------------+-------------------------------------------+
    | user   | host         | password                                  |
    +--------+--------------+-------------------------------------------+
    | root   | localhost    |                                        |
    | root   | example.com. | *35417AD9696FC8B598835E0795D218F1AF4C717F |
    | root   | 127.0.0.1    | *DE8EB47E628634A63A4FE22274348660EC434DF4 |
    | dbuser | localhost    | *423B4F064CE2852B55AEC8E09CC8AFC135991862 |
    +--------+--------------+-------------------------------------------+
    
  4. MySQLをログアウトし、サービスの再起動を行います。
    mysql> QUIT;
    Bye
    [root@example ~]# service mysqld restart
    
  5. mysqlにパスワード無しでログインし、パスワードを再設定します。
    ※'新しいパスワード'を任意の文字列に変更して下さい。
    [root@example ~]# mysql -u root
    mysql> set password for root@localhost=password('新しいパスワード');	
    
 

アンケート:ご意見をお聞かせください