MySQL(バイナリ)セットアップ(on FedoraCore5)

FedoraCore5 への MySQL5.0.20 インストール
rpmでのインストールは色々と情報があるようなので、あえてバイナリでのセットアップをしてみた。

環境

セットアップ手順【参考

  1. MySQLのダウンロード
  2. MySQLのインストール
    • 以下、展開したファイルの「INSTALL-BINARY」を参考にしてみた。
    • 以下の作業は root で行う。
    • インストール先は「/usr/local/mysql
      • これは $MYSQL_HOME/binmysqlaccess スクリプト内の以下の記述に対応するようだ。

$MYSQL = '/usr/local/mysql/bin/mysql'; # path to mysql executable

起動・停止

  1. MySQLの起動
    1. 通常の方法
      • # bin/mysqld_safe --user=mysql &
      • 「&」をつけてデーモン起動する。
    2. スクリプトを直接実行する場合
    3. service コマンド経由で実行する場合(/etc/init.d 以下へ起動スクリプトの配置が完了している必要あり)
  2. MySQL自動起動の設定
    • # cp -p /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    • # /sbin/chkconfig --level 2345 mysql on
    • # /sbin/chkconfig --level 016 mysql off
  3. MySQL自動起動を無効にする
    • # /sbin/chkconfig --level 2345 mysql off
  4. 管理者パスワードの設定
    • # /usr/local/mysql/bin/mysqladmin -u root password '管理者のパスワード'
  5. MySQLの停止
    1. 通常の方法
      • # /usr/local/mysql/bin/mysqladmin shutdown
      • 管理者パスワードを設定している場合は↓のようにオプションをつける。
      • # /usr/local/mysql/bin/mysqladmin shutdown -u root -p

接続

  1. MySQLへの接続
    • >mysql -u root -p(パスワード)
      • この場合は root アカウント(MySQL内のアカウント)でログインを試みる。
      • パスワードは省略すると、その後入力を求められる。
      • -p に続けて指定する場合はスペースを入れずに記述する。
      • ログインに成功すると、プロンプトが「mysql>」に変わる。
  2. DBユーザの作成
    • ↓ユーザ「hogehoge」をの作成
    • mysql> grant all privileges on *.* to hogehoge@localhost identified by 'hogehogeのパスワード' with grant option;
    • mysql> flush privileges;
      • 「all privileges」で全ての権限を有するように指定
        • 操作を限定したい場合は「SELECT/INSERT/UPDATE/DELETE」のうち必要なものをカンマ区切りで列挙する
          • ex) grant SELECT,INSERT
      • 「on *.*」で「全てのデータベース」の「全てのテーブル」が対象となる
      • 「to hogehoge@localhost」で「localhost」から接続した場合の「hogehoge」ユーザの設定 となる
        • 全てのホストからの接続を対象としたい場合は「@localhost」と「@"%"」で、2通り登録する必要があるらしい
      • 「by identified '〜'」で、このユーザのパスワードを設定
      • 「with grant option」で、このユーザが GRANT句を実行できるように設定
      • 「flush privileges;」で権限を反映しなおす(ようだ)。
  3. データベースの作成(必要に応じて)
    • データベース「testdb」を作成
      • mysql> create database testdb;
    • 操作対象のデータベースを「testdb」に変更
    • テーブル「tbl1」を作ってみる
      • mysql> create table members(num1 int auto_increment primary key, chr1 varchar(80));
  4. MySQLとの接続を解除する

Tips

  1. rootユーザのパスワードを忘れた場合の対処
    • ↓以下のコマンドでMySQLを起動する
      • # /usr/local/mysql/bin/mysqld_safe --user=mysql --skip_grant_tables &
    • MySQLに接続し、以下のコマンドを実行する