fc2ブログ

2013-01-03(Thu)

/usr/libexec/mysqld: Can't change dir

MySQLのディレクトリーを増設したHDDに変更し

$ sudo /etc/init.d/mysqld start


すると以下のエラーが発生した。
どうやらSELinuxがブロックしているらしい。
確認のため以下の通り一時的に開放する。

$ setenforce Permissive
$ sudo /etc/init.d/mysqld start
mysqld を起動中: [ OK ]


これで動き出した。

自宅のローカルデバッグ用なのでSELinuxは使わないようにする。

$ sudo vim /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled



参考:
SELinuxを無効化するには
SELinuxシステム管理 ―セキュアOSの基礎と運用

スポンサーサイト



2012-12-29(Sat)

Amazon LinuxにMySQLをインストール

Amazon LinuxMySQL5.5を入れたのでメモる。

ここで重要なのはepel, remiリポジトリのインストールだけ。

(epel)
$ sudo rpm -Uvh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-7.noarch.rpm
(remi)
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
(rpmforge)
$ sudo rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm



リポジトリの編集
ハマったのはここ。バージョンの直接指定。

$ sudo vim /etc/yum.repos.d/remi.repo
[remi]
バージョンを直接指定する↓(CentOS6.3なので'$releaserver'を'6'に変更)
# mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
priority=1 ←追加



あとはインストールするだけ。

$ sudo yum --enablerepo=remi info mysql-server
Loaded plugins: priorities, security, update-motd, upgrade-helper
amzn-main | 2.1 kB 00:00
amzn-updates | 2.3 kB 00:00
remi | 2.9 kB 00:00
remi/primary_db | 450 kB 00:02
353 packages excluded due to repository priority protections
Available Packages
Name : mysql-server
Arch : x86_64
Version : 5.5.28
Release : 3.el6.remi
Size : 10 M
Repo : remi
Summary : The MySQL server and related files
URL : http://www.mysql.com
License : GPLv2 with exceptions
Description : MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
: client/server implementation consisting of a server daemon (mysqld)
: and many different client programs and libraries. This package contains
: the MySQL server and some accompanying files and directories.

$ sudo yum --enablerepo=remi install mysql mysql-server mysql-devel mysql-libs



参考:
Scientific Linux 6.1 で remi を使う


2012-09-01(Sat)

MySQL CSVエクスポートクエリーをシェルからうつ

MySQLのデータをシェルを使ってCSVファイルとしてダンプする必要が出てきたのでメモる。

以下の通りすればいい。
-e オプションでクエリーを直接記述できる。
出力先は/tmp/test_t.csvとする。


$ mysql --user=`username` --password=`password` testdb -e "SELECT * FROM test_t INTO OUTFILE '/tmp/test_t.csv' FIELDS TERMINATED BY ','OPTIONALLY ENCLOSED BY '\'';"




参考:
MySQLとシェルスクリプト

2012-08-05(Sun)

MySQL ERROR 1062 (23000): Duplicate entry

クエリーエラーが発生してreplicationが外れたときの対応をメモる。

以下のログをみてみる。
$ view /var/log/mysql/mysqld_err.log
[ERROR] Slave SQL: Error 'Duplicate entry '8' for key 'PRIMARY'' on query...., Error_code: 1062
INSERTしようとしてPRIMARY KEYがかぶってクエリーエラーが発生している。


これは開発中にいくらでもありそうなので対応として、このエラーコードを
スキップする。
slave側の/etc/my.cnfに以下を追加してDBリブート。
[mysqld]
slave-skip-errors=1062

これでエラーでなくなった。

参考:
 MySQL スレーブで SQL スレッドが停止した場合の対処方法

2012-07-15(Sun)

MySQLでCSVファイルの読み書き

大前提として、CSVファイルを使うユーザーはFILE権限が必要だということをお忘れなきよう。

FILE権限があるか確認
mysql> show grants for current_user();
+------------------------------------------------------------------------------------------------------------+
| Grants for testuser@localhost |
+-----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK TABLES ON *.* TO 'testuser'@'localhost' IDENTIFIED BY PASSWORD '*******' |
+-----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

FILE権限を与える
mysql> GRANT FILE ON *.* TO testuser@localhost;

読み出し
mysql> SELECT * FROM test_table INTO OUTFILE "/home/hoge/test_table.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

この時、以下のようなエラーが出たらここを参考。ようはパーミッションの問題。なんでもありの/tmpに吐き出す。
ERROR 1 (HY000): Can't create/write to file '/home/hoge/test_table.csv' (Errcode: 13)
mysql> SELECT * FROM test_table INTO OUTFILE "/tmp/test_table.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
Query OK, 17112 rows affected (0.03 sec)

書き込み
mysql>LOAD DATA INFILE "/var/lib/mysql/hoge_db/cc.csv" INTO TABLE user_table FIELDS TERMINATED BY ',' ENCLOSED BY '"';


プロフィール

kumagonjp2

Author:kumagonjp2
Python,Django,R,Mongo,MySQL,Struts,Spring,データマイニングなどサーバー関係のメモを残していきます。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
雪が3Dで降るブログパーツ ver2

マウスで見る方向変えられます

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR