MySQLのインストール・設定

更新:

MySQLのインストール・設定方法。
対象:Linux Fedora, RedHat

MySQLのインストール・設定
  • MySQL関連サイト
    https://www.mysql.com/
    http://www.mysql.gr.jp/
  • インストール関連情報
    rpmyum、apt-gettar.gzmake installシェル・環境変数
  • MySQLのアンインストール
    既に古いバージョンのMySQLがインストールされている場合、正常にインストールできない場合があるのでアンインストール。
    依存関係があって、MySQL単体を削除できなければ強制削除。
    rpm -e --nodeps perl-DBD-MySQL-2.9003-4
    rpm -e --nodeps mysql-3.23.58-9.1
    
  • MySQLのインストール
    groupadd mysql
    useradd -g mysql mysql
    chown mysql:mysql /usr/local/src/mysql-4.1.8a
    mkdir /usr/local/mysql
    chown -R mysql  /usr/local/mysql
    chgrp -R mysql /usr/local/mysql
    
    ./configure \
    	--prefix=/usr/local/mysql \
    	--with-mysqld-user=mysql \
    	--with-charset=ujis \     ujisはEUC_JPのこと。SHIFT_JISの場合はsjis。
    	--with-extra-charsets=all \
    	--localstatedir=/usr/local/mysql/var \
    	その他
    	--enable-assembler \
    	--enable-thread-safe-client \
    	--with-openssl
    make
    make install
    
    データベースを初期化
    /usr/local/mysql/bin/mysql_install_db または ./scripts/mysql_install_db
    DBの情報が初期化されるので、DB構築後は注意。
    
    chown -R mysql /usr/local/mysql/var
    chgrp -R mysql /usr/local/mysql/var
    
    起動
    /usr/local/mysql/bin/mysqld_safe --user=mysql &
    /usr/local/mysql/bin/mysqlshow
    
    パスを追加
    vi ~/.bash_profile
    	export PATH=$PATH:/usr/local/mysql/bin
    
    パスワードの設定
    mysql -u root mysql
    SET PASSWORD FOR root@localhost=PASSWORD('パスワード');
    	mysqladmin -u root password new_password
    	mysqladmin reload
    
    終了
    /usr/local/mysql/bin/mysqladmin shutdown
    
  • 自動起動スクリプト
    起動スクリプトファイルがない場合は自分で作る。
    付属のサンプルをコピー
    cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/
    
    パーミッション変更
    chmod 755 /etc/rc.d/init.d/mysql.server
  • 自動起動設定・ランレベル
    設定ON
    chkconfig mysql.server on または chkconfig --add mysql.server
    設定確認
    chkconfig --list mysql.server
  • 起動・終了
    起動
    /etc/rc.d/init.d/mysql.server
    終了
    /etc/rc.d/init.d/mysql.server stop
  • MySQLの設定ファイル
    付属のサンプルをコピー
    cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
    	my-small.cnf my-large.cnf my-huge.cnfでもOK
    
    vi /etc/my.cnf
    	[mysqld]
    	default-character-set=ujis
    	[mysql]
    	default-character-set=ujis
    	[mysqldump]
    	default-character-set=ujis
    	や
    	[mysqld]
    	default-character-set=ujis
    	init-connect=SET NAMES binary
    	[mysql]
    	default-character-set=binary
    	
    	文字コードは、sjisやutf8(ハイフンなし)もある。
    
  • perl-DBD-MySQLのインストール
    PerlからMySQLを使う場合に必要。
    cd /usr/local/src/
    tar xvzf DBD-mysql-2.9004.tar.gz
    perl Makefile.PL
    make
    make install
    
    備考
    ・オプションを見る
    	perl Makefile.PL --help
    
    ・デフォルトのパスを見る
    	mysql_config --cflags
    		-I/usr/local/mysql/include/mysql
    	mysql_config --libs
    		-L/usr/local/mysql/lib/mysql -lmysqlclient -lcrypt -lnsl -lm -lz
    
    ・パスを変更する場合
    	perl Makefile.PL --cflags=-I/usr/local/mysql/include/mysql \
    		--libs="-L/usr/local/mysql/lib/mysql -libmysqlclient -lcrypt -lnsl -lm -lz"
    
    パスは通常、デフォルトのままでOK。

    .soファイルやmysql_initなどのエラーが出る場合、 MySQL本体をインストール後、各設定を終えた段階で、再度DBD-mysqlインストールすると、 MySQLからDBに接続できることがあります。
  • mysql-connector-javaのインストール
    Java(JSP、サーブレット)からMySQLを使う場合に必要。
    cd /usr/local
    tar xvzf mysql-connector-java-3.1.6.tar.gz
    
    シンボリックを作成(好みで設定)
    ln -s mysql-connector-java-3.1.6 mysql-connector-java
    ln -s mysql-connector-java-3.1.6-bin.jar mysql-connector-java.jar
    
    パスの設定
    vi ~/.bash_profile
    	export CLASSPATH=/usr/local/mysql-connector-java/mysql-connector-java.jar
    
    jarファイルをコピー
    cp mysql-connector-java-3.1.6-bin.jar $JAVA_HOME/jre/lib/ext
    cp mysql-connector-java-3.1.6-bin.jar $TOMCAT_HOME/common/lib
    
  • ログイン
    mysql -u ユーザ名 -p データベース名

    mysql -u root -p mysql
  • 権限
    mysqlにrootでログインして行う。
    grant all on testdb.* to mysql@localhost identified by 'パスワード';
    grant all on testdb.* to ユーザ名@localhost identified by 'パスワード';
    設定を更新
    flush privileges;
  • データベース作成
    mysqladmin -u mysql -p create データベース名
    または、mysql起動後、
    create database データベース名;
  • パスワード変更
    mysql -u mysql
    で、ログイン後
    set password for mysql@localhost=password('パスワード');
  • ユーザ情報
    ユーザ情報参照
    select user, host, password from mysql.user;
    ユーザを削除
    delete from mysql.user where user="ユーザ名";
  • テーブル作成のサンプル
    create table testtable(
    	id   int2,
    	name text,
    	name blob);
    	
    	int2:数値(数字用)
    	text:テキスト形式のデータ(文字列用)
    	blob:バイナリ形式のデータ(画像などバイナリ用)
    	
    データベースをEUCで作った場合、SJISの文字列をテーブルにinsertするには、
    フィールド(カラム)をバイナリ形式で作る。
    
    テーブルにデータを挿入
    insert into testtable values('1','test1');
    insert into testtable values('2','test2');
    insert into testtable values('3','test3');
    insert into testtable values('4','テスト4');
    
    テーブルを参照
    select * from testtable;
    
    テーブルのデータを削除
    delete from testtable where id=4;
    
  • 備考
    SJISなどの文字列が入るカラムは、バイナリ形式(blob)で作る。
    JavaでDB接続のとき、getStringではなくgetBytes及びコード変換を利用して文字化けを解消する。
このエントリーをはてなブックマークに追加