【さくらVPSで運用 CentOs5.5】mysql編

※サーバー運用の素人の個人メモなので、あんまり参考にしない方がいいかも。

mysqlインストール

rpm -qa mysql-server
 入ってるか確認する

sudo yum -y install mysql-server
 入ってなければインストール


cd $HOME
cp /etc/my.cnf .
sudo vi /etc/my.cnf
 my.cnfの編集(文字コードの設定)


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

■追加部分
# character-set
default-character-set=utf8
skip-character-set-client-handshake

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

■追加部分
[client]
default-character-set=utf8

■追加部分
[mysql]
default-character-set=utf8

■追加部分
[mysqldump]
default-character-set=utf8


chkconfig --list mysqld
 自動起動になっているか確認
 
sudo chkconfig mysqld on
 なっていなければ設定

sudo /etc/rc.d/init.d/mysqld start
 mysqlを起動

sudo mysqladmin -u root password 'パスワード'
 パスワードの設定

mysql -u root -p
 mysqlにログイン

use mysql
DELETE FROM user WHERE user = '' OR ( user = 'root' AND host != 'localhost' )
 mysqlデータベースから、不要なユーザーの削除

DROP DATABASE test
 不要なデータベースの削除

ユーザーを作る

GRANT ALL PRIVILEGES ON DB名.* TO ユーザー名@localhost IDENTIFIED BY 'パスワード';
FLUSH PRIVILEGES;

FLUSH PRIVILEGES;

ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist
ってエラーがでると思う。
そしたら、このテーブルを作ってやれば解決。

CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,
`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';

参考リンク

なんで、ないのかはよく分からん。