目次

準備

  • mysqlユーザを作成
    # /usr/sbin/useradd -d /usr/local/mysql mysql
    # chmod 755 /usr/local/mysql/

インストール

ソースダウンロード先
http://dev.mysql.com/downloads/mysql/?rz=gdl#downloads

参照

SmartSmart
http://www.rfs.jp/sb/perl/08/10.html
  • 作業用ディレクトリを作成
    # mkdir /usr/local/src/mysql-5.0.45
    # chown mysql.mysql mysql-5.0.45
  • 解凍
    # su mysql
    $ tar xvzf mysql-5.0.45.tar.gz
  • コンパイル
    $ cd mysql-5.0.45
    $ ./configure \
      --prefix=/usr/local/mysql \
      --with-charset=ujis \
      --with-extra-charset=all \
      --with-mysqld-user=mysql \
      --with-innodb
    $ make
  • インストール
    $ su
    # make install
  • データベースの初期化
    # /usr/local/mysql/bin/mysql_install_db

設定

自動起動の設定

  • 起動スクリプトをコピー
    # cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql
起動
# /etc/rc.d/init.d/mysql start
停止
# /etc/rc.d/init.d/mysql stop
  • 自動起動に追加
    # /sbin/chkconfig --add mysql

パスの設定

ユーザmysqlにmysqlコマンド群へのパスを通す

# su mysql
$ vi ~/.bashrc

下記を追記

PATH="$PATH":/usr/local/mysql/bin

設定の反映

$ source ~/.bashrc

はまった事

phpのモジュールとして組み込む場合、configureに--with-mysql=/usr/local/mysqlオプションをつけるが、
Cannot find MySQL header files under
とエラーがでる。

どうやら
/usr/local/mysql/include/mysql
にあるヘッダーファイルを読み込めていないらしい。

$ ln -s /usr/local/mysql/include/mysql /usr/local/include/mysql

と、/usr/local/include/にシンボリックリンクを張ることで解決するのがスマートかと。

RPMでのインストール

# yum install mysql mysql-devel mysql-server
# /etc/rc.d/init.d/mysqld start

自動起動の追加

# /sbin/chkconfig --add mysqld
# /sbin/chkconfig mysqld on
# /sbin/chkconfig --list mysqld

PHPから使用する場合、socketの指定

# vi /usr/local/lib/php.ini
mysql.default_socket = /var/lib/mysql/mysql.sock

ssh経由でデータを閲覧した際に文字化けする場合

# vi /etc/my.cnf
[client]
default-character-set=utf8

追加してMySQLを再起動してみる。

CentOS6系でMySQL5.7を使用する

# rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
# yum info mysql-community-server
# yum install mysql-community-server
# mysql --version

起動して立ち上がらなく、以下のようなエラーが /var/log/mysqld.log ファイルに残っている場合、

[ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!

3ファイルを削除します。
ib_logfile0, ib_logfile1, ibdata1

# rm -f /var/lib/mysql/ib*

すると以下のエラーが発生し、MySQLが起動しなくなります。

Fatal error: mysql.user table is damaged. Please run mysql_upgrade.

セーフモードで起動します。

# mysqld_safe --skip-grant-tables &

別の画面から mysql_upgrade を実行します。

# mysql_upgrade -u root

停止します。

# /etc/rc.d/init.d/mysqld stop

また my.cnf に以下の設定があるとエラーになるので、書き換えます。

[mysqld]
#default-character-set=utf8 # エラーになる
character-set-server=utf8

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-19 (日) 19:09:26