バージョンは、
$ mysqld --version
mysqld Ver 5.5.28-log for CYGWIN on i686 (Source distribution)
TRY1:setup.exeを使ってインストール
setup.exeを使うとインストールは問題なく完了しますが、起動時に問題が。
■mysql のdataディレクトリの設定
データ保存ディレクトリを/e/work/lib/mysql_dataに。
$cd /usr/bin
$vi ./mysq_install_db
ldatadir="/e/work/lib/mysql_data"
■mysql_dbのセットアップ
$ ./mysql_install_db
これは成功。設定ファイルをコピー。
$ cp my-medium.cnf /etc/my.cnf
この先で問題が。mysql用のユーザーを作成したものの、
$ net user kinoko /add /fullname:kinoko /comment:'mysql user account' /homedir:"$(cygpath -w /home/kinoko)"
このユーザーを使って
$ ./mysqld_safe --user=kinoko &
を実行するとエラー。
(実行時にデータ保存先やエラーログファイルを指定したければ、--datadir=/usr/local/mysql/data --log-error=/var/log/mysql.log & というようなオプションをつけます。)
(実行時にデータ保存先やエラーログファイルを指定したければ、--datadir=/usr/local/mysql/data --log-error=/var/log/mysql.log & というようなオプションをつけます。)
エラー内容は、(抜粋)
chown: invalid user: `kinoko'
見ると/etc/passwdにkinokoが追加されておらず。Windowsを再起動してログイン画面を見るとkinokoさんが増えているので、Windowsにとってはユーザが存在しているようす。
adduserを使おうと考えましたがCygwinにはないようなので、いろいろ試しましたが結局うまくいかず断念です。
・CygwinはLinuxと違いrootユーザーがいない
・adduser(useradd)がないのでunixライクにユーザーの追加ができない。
・net user を使うと追加できているが、/etc/passwdに反映されない。
※追記:
調べてみるとWindowsのユーザーをcygwinのユーザーに追加する方法がありました。
$mkpasswd -l -u USERNAME >> /etc/passwd
試してみました。
$mkpasswd -l -i kinoko >>/etc/passwd
$mysqld_safe --user=kinoko &
(略)
$ mysqlshow.exe -u kinoko
+--------------------+
| Databases |
+--------------------+
| information_schema |
| test |
+--------------------+
成功です・・!
TRY2: Windows版インストーラを使ってインストール
install_dirとdata_dirを変更するとエラーになりました。
エラーログは、
エラーログは、
1: Folder: E:\work\mysql_data\
1: Folder: E:\work\mysql_data\data\
1: The installer has insufficient privileges to access this directory: E:\work\mysql_data\data. The installation cannot continue. Log on as administrator or contact your system administrator.
1: Folder: E:\work\mysql_data\data\
1: The installer has insufficient privileges to access this directory: E:\work\mysql_data\data. The installation cannot continue. Log on as administrator or contact your system administrator.
これを手がかりに探すと似た古いログがありましたが、(2005年)
【mysqlをインストールしたディレクトリとdata_dirのドライブが違う場合、アップデートの際にこのエラーが発生する】
ということだし、install_dirとdata_dirは同じドライブなので該当しません。
insufficient privilegesということで、パーミッションのせいかと思い777に変更してみたものの、
1: Failed to set security descriptor on object E:\work\mysql_data\, system error: -2147024891
というエラー。
結局、試しに2つのディレクトリ指定をデフォルトでやってみるとインストール成功。
ただ、デフォルトのCドライブは残り容量がないので、
$ df -h
C: 40G 40G 426M 99% /c
アンインストールしました。
TRY:3 ソースからインストール
Download MySQL Community ServerからSourceCodeをDL.
2.10 Installing MySQL from source を読むとインストール後の話がかいてあり、
mySQL Source Configuration Options を参考にcmake。
install_dir = /e/mysql
data_dir = /e/mysql_data
として、紆余曲折のすえ、
$ cmake . -DCMAKE_INSTALL_PREFIX=/e/mysql -DMYSQL_DATADIR=/e/mysql_data -DDEFAULT_CHARSET=utf8 2>>stderr.log 1>>stdout.log
$ cat stderr.log
/usr/bin/getconf: Unrecognized variable `LEVEL1_DCACHE_LINESIZE'
Warning: Bison executable not found in PATH
CMake Error at unittest/gunit/CMakeLists.txt:170 (ADD_LIBRARY):
Cannot find source file:
/e/Software/mysql/mysql-5.6.10/source_downloads/gmock-1.6.0/src/gmock-all.cc
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
というエラーににたどり着いたものの、
最初の
/usr/bin/getconf: Unrecognized variable `LEVEL1_DCACHE_LINESIZE'
を調べてみると、
$strings /usr/bin/getconf |grep -i LEVEL1_DCHACHE_LINESIZE
$
該当なしでした。