約 3,765,074 件
https://w.atwiki.jp/beaglemasa/pages/73.html
MySQlサーバ停止 mysqld_safe --skip-grant-tables --skip-networkingオプションにてサーバを起動 mysql -u root mysql FLUSH PRIVILEGES; SET PASSWORD FOR root@ localhost = PASSWORD( password ); mysql quit MySQLサーバ起動
https://w.atwiki.jp/nicepaper/pages/75.html
前回記事PHPとMySQLでデータの取得からリンクで飛んできたページを作っていきたいと思います。6月4日記事 GETメソッドの注意点 クエリ条件 コード GETメソッドの注意点 GETメソッドはqueryの内容がURLに表示されているため、適切に処理する必要があります。 クエリ条件 idでかつ公開中(2)のデータの場合のみ表示させ、そうでない場合は、「この記事はありません。」的なエラー処理をしていきたいと思います。 すると mysql SELECT * FROM information WHERE id = 受け取ったID番号 AND status = 2 ; というようなクエリになると思います。 コード 受け取った値が数値のもののみを許可する必要があります。 fillter関数を使ってもよいですし、PDOのbindParamで、数値のチェックをしてもいいと思います。 関数の勉強もかねて両方行っていきましょうか?あまり意味ないとは思いますが・・・ ファイル名(information.php) !DOCTYPE HTML html lang="ja" head meta charset="utf-8" title 更新情報 /title /head body ?php $dsn = mysql dbname=データベース名;host=localhost;port=3306 ; $user = ユーザ名 ; $password = ユーザパスワード ; try{ //成功時対応 $dbh = new PDO($dsn, $user, $password); $id = $_GET[ id ]; $filter_id = filter_var($id ,FILTER_SANITIZE_NUMBER_INT,FILTER_NULL_ON_FAILURE); //echo $filter_id; $stmt = $dbh - prepare("SELECT * FROM information WHERE id = id AND status = 2 "); $stmt- bindParam( id , $filter_id, PDO PARAM_INT); $stmt- execute();//実行 $result = $stmt- fetch(); echo dl dt 記事ID /dt dd ; echo htmlspecialchars($result[ id ]). br ; echo /dd dt 日付 /dt dd ; echo htmlspecialchars($result[ info_date ]). br ; echo /dd dt 投稿種類 /dt dd ; switch($result[ type ]){ case 1 echo ニュース ; break; case 2 echo 更新情報 ; break; case 3 echo 入荷情報 ; break; case 4 echo その他 ; break; default echo その他 ; } echo /dd dt タイトル /dt dd ; echo htmlspecialchars($result[ title ]). br ; echo /dd dt 内容 /dt dd ; echo nl2br(htmlspecialchars($result[ info_text ])). br ; echo /dd dt URL /dt dd ; echo htmlspecialchars($result[ url ]). br ; echo /dd /dl ; echo a href="index.php" ホームに戻る /a ; }catch (PDOException $e){//失敗時対応 print( Connection failed .$e- getMessage()); die(); } $dbh = null; ? /body /html 次ページはPHPとMySQLを使って更新情報の再編集ページを作るです。
https://w.atwiki.jp/japanesehiphop/pages/3706.html
Format Title Artist Label Model Number Release Press 12 MOUSOU PAGER EP MOUSOU PAGER PAY ME,LEXINGTON LEXAL015 2016/11/25 - #ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。 Side Track Title Produce A 1 鸞翔鳳集(RunShowHoesYou) Kuma the Sureshot 2 誇大妄想(ILLICIT TSUBOI CLOUD 9 REMIX) ILLICIT TSUBOI 3 真ッ黒ニナル過程 Kuma the Sureshot B 4 HUG NIGHT Kuma the Sureshot 5 HUG NIGHT(Inst) Kuma the Sureshot 6 鸞翔鳳集(RunShowHoesYou)(Inst) Kuma the Sureshot 7 真ッ黒ニナル過程(Bonus Beat) Kuma the Sureshot PERTAIN RECORD MOUSOU PAGER EP [Analog]
https://w.atwiki.jp/anthony/pages/25.html
ProFTPDとMySQLの仮想ホスティング構成 ProFTPDとMySQLの仮想ホスティング構成目的 導入するバージョン MySQLの導入 MySQLの初期設定 ProFTPDの導入 仮想ユーザの登録 ルータ配下の玄箱PROでFTPサーバ提供する際のNAT問題 関連パッケージ 目的 ProFTPDのLocal/Remoteのエンコーディング指定を可能にするパッチ適用 MySQLと連携した仮想ホスティング(Linux上にユーザ登録しないでFTPユーザ作成) ProFTPDにはQuotaも組み込み 本当はapt-getで出来るだけ簡単導入してProFTPDのパッチのみを適用する形にしたかったが、MySQLもビルドしないとうまくいかなったので、とりあえずはその作業内容を残します。 ※以前の情報では何とか出来上がった手順を載せていましたが、玄箱PROを組みなおす機会があったのでこうしんしました。ポイントはconfigureやmakeに何か足りずに失敗したらwget直後からやり直すことですね・・・変にconfigureしたものやmakeしたものが残っていると何がうまくいって何がうまくいっていないのか分からなくなりました・・・ 導入するバージョン MySQL 4.1.21 ProFTPD 1.3.0 MySQLの導入 ビルドに必要なパッケージを導入してからの手順です。 # apt-get install make gcc g++ zlib1g-dev libcdk5-dev # groupadd mysql # useradd -g mysql -d /usr/local mysql # cd /usr/local/src # wget http //downloads.mysql.com/archives/mysql-4.1/mysql-4.1.21.tar.gz # tar zxvf mysql-4.1.21.tar.gz # cd mysql-4.1.21 #/mysql-4.1.21# ./configure \ --with-charset=utf8 \ --with-extra-charsets=all \ --with-mysqld-user=mysql # make make終了まで2時間ほど待機。 make install には以下3つのパッケージが必要です。 # apt-get install autoconf2.13 # apt-get install automake1.4 # apt-get install libtool # make install # cp support-files/my-small.cnf /etc/my.cnf # /usr/local/bin/mysql_install_db # chmod -R 777 /usr/local/var MySQLの初期設定 password にはrootとして使用するパスワードをmysqladminで設定します。 その後mysqlデータベースに接続します。 # su mysql # /usr/local/bin/mysqld_safe # /usr/local/bin/mysqladmin -u root password password # /usr/local/bin/mysql -u root -p mysql Enter password Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version 4.1.21-log Type help; or \h for help. Type \c to clear the buffer. mysql DELETE FROM user WHERE password= ; Query OK, 3 rows affected (0.00 sec) mysql select user, host, password from mysql.user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *EX4858XB86EXA20BX33X0AECXE8AX108X56BX7FA | +------+-----------+-------------------------------------------+ 1 row in set (0.00 sec) mysql exit Bye # exit システム起動時に自動実行されるようにupdate-rc.dで/etc/init.d/mysqlをdefaultsで登録する。 # cp /usr/local/src/mysql-4.1.21/support-files/mysql.server \ /etc/init.d/mysql # chmod +x /etc/init.d/mysql # update-rc.d mysql defaults ProFTPDの導入 サーバのエンコーディングとクライアントのエンコーディングが指定できるmod_codeconvを組み込んでビルドします。 # apt-get install patch # groupadd proftpd # useradd -g proftpd -d /dev/null -s /usr/sbin/nologin proftpd # cd /usr/local/src # wget ftp //ftp.proftpd.org/distrib/source/proftpd-1.3.0.tar.gz # wget http //www.hakusan.tsg.ne.jp/tjkawa/software/misc/proftpd-iconv/\ pack/proftpd-1.3.0-iconv.patch.gz # wget http //www.hayasoft.com/haya/linux/proftpd-nlst-patch/\ proftpd-1.3.0-nlst-ffftp.patch # tar -zxvf proftpd-1.3.0.tar.gz # gzip -d proftpd-1.3.0-iconv.patch.gz # patch -p0 proftpd-1.3.0-iconv.patch # patch -p0 proftpd-1.3.0-nlst-ffftp.patch # cd /usr/local/src/proftpd-1.3.0 # ./configure --prefix=/usr/local \ --with-modules=mod_codeconv mod_df\ mod_sql mod_sql_mysql mod_quotatab mod_quotatab_sql \ --with-libraries=/usr/local/lib/mysql \ --with-includes=/usr/local/include/mysql \ --disable-auth-pam # make # make install 導入されたproftpdに組み込まれたモジュールを確認します。mod_codeconv, mod_sql, mod_sql_mysql, mod_quotatab, mod_quotatab_sqlがあることを確認してください。 # proftpd -l Compiled-in modules mod_core.c mod_xfer.c mod_auth_unix.c mod_auth_file.c mod_auth.c mod_ls.c mod_log.c mod_site.c mod_delay.c mod_codeconv.c mod_df.c mod_sql.c mod_sql_mysql.c mod_quotatab.c mod_quotatab_sql.c mod_cap.c # mkdir /var/log/proftpd # chown -R proftpd proftpd /var/log/proftpd/ # vi /etc/init.d/proftpd proftpd起動用シェルを作成します。Debianのapt-getで導入されるシェルをそのまま使用します。 #!/bin/sh # Start the proftpd FTP daemon. PATH=/bin /usr/bin /sbin /usr/sbin DAEMON=/usr/sbin/proftpd NAME=proftpd # Defaults RUN="yes" OPTIONS="" PIDFILE=`grep -i pidfile /usr/local/etc/proftpd.conf | \ sed -e s/pidfile[\t ]\+//i ` if [ "x$PIDFILE" = "x" ]; then PIDFILE=/usr/local/var/proftpd.pid fi # Read config (will override defaults) [ -r /etc/default/proftpd ] . /etc/default/proftpd trap "" 1 trap "" 15 #test -f $DAEMON || exit 0 # # These compatibility funcs are here just for sarge backports. # They will be removed post-etch. # log_daemon_msg() { echo -n "$1 $2" } log_end_msg() { if [ $1 -ne 0 ]; then echo " failed!" else echo "." fi } [ -f /lib/lsb/init-functions ] . /lib/lsb/init-functions # # Servertype could be inetd|standalone|none. # In all cases check against inetd and xinetd support. # if ! egrep -qi "^[[ space ]]*ServerType.*standalone" \ /usr/local/etc/proftpd.conf then if [ $(dpkg-divert --list xinetd|wc -l) -eq 1 ] then if egrep -qi "server[[ space ]]*=[[ space ]]*/usr/sbin/proftpd" \ /etc/xinetd.conf 2 /dev/null || \ egrep -qi "server[[ space ]]*=[[ space ]]*/usr/sbin/proftpd" \ /etc/xinetd.d/* 2 /dev/null then RUN="no" INETD="yes" else if ! egrep -qi "^[[ space ]]*ServerType.*inetd" \ /usr/local/etc/proftpd.conf then RUN="yes" INETD="no" else RUN="no" INETD="no" fi fi else if egrep -qi "^ftp.*/usr/sbin/proftpd" /etc/inetd.conf 2 /dev/null then RUN="no" INETD="yes" else if ! egrep -qi "^[[ space ]]*ServerType.*inetd" \ /usr/local/etc/proftpd.conf then RUN="yes" INETD="no" else RUN="no" INETD="no" fi fi fi fi # /var/run could be on a tmpfs [ ! -d /var/run/proftpd ] mkdir /var/run/proftpd start() { log_daemon_msg "Starting ftp server" "$NAME" start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec $DAEMON \ -- $OPTIONS if [ $? != 0 ]; then log_end_msg 1 exit 1 else log_end_msg 0 fi } signal() { if [ "$1" = "stop" ]; then SIGNAL="TERM" log_daemon_msg "Stopping ftp server" "$NAME" else if [ "$1" = "reload" ]; then SIGNAL="HUP" log_daemon_msg "Reloading ftp server" "$NAME" else echo "ERR wrong parameter given to signal()" exit 1 fi fi if [ -f "$PIDFILE" ]; then start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile \ "$PIDFILE" if [ $? = 0 ]; then log_end_msg 0 else SIGNAL="KILL" start-stop-daemon --stop --signal $SIGNAL --quiet \ --pidfile "$PIDFILE" if [ $? != 0 ]; then log_end_msg 1 [ $2 != 0 ] || exit 0 else log_end_msg 0 fi fi if [ "$SIGNAL" = "KILL" ]; then rm -f "$PIDFILE" fi else log_end_msg 0 fi } case "$1" in start) if [ "x$RUN" = "xyes" ] ; then start else if [ "x$INETD" = "xyes" ] ; then echo "ProFTPd is started from inetd/xinetd." else echo "ProFTPd warning cannot start neither \ in standalone nor in inetd/xinetd mode. Check \ your configuration." fi fi ;; force-start) if [ "x$INETD" = "xyes" ] ; then echo "Warning ProFTPd is started from inetd/xinetd \ (trying to start anyway)." fi start ;; stop) if [ "x$RUN" = "xyes" ] ; then signal stop 0 else if [ "x$INETD" = "xyes" ] ; then echo "ProFTPd is started from inetd/xinetd." else echo "ProFTPd warning cannot start neither \ in standalone nor in inetd/xinetd mode. Check \ your configuration." fi fi ;; force-stop) if [ "x$INETD" = "xyes" ] ; then echo "Warning ProFTPd is started from inetd/xinetd \ (trying to kill anyway)." fi signal stop 0 ;; reload) signal reload 0 ;; force-reload|restart) if [ "x$RUN" = "xyes" ] ; then signal stop 1 sleep 2 start else if [ "x$INETD" = "xyes" ] ; then echo "ProFTPd is started from inetd." else echo "ProFTPd warning cannot start neither \ in standalone nor in inetd/xinetd mode. Check \ your configuration." fi fi ;; *) echo "Usage /etc/init.d/$NAME {start|force-start|stop|\ force-stop|reload|restart|force-reload}" exit 1 ;; esac exit 0 # chmod +x /etc/init.d/proftpd # update-rc.d proftpd defaults # mkdir /var/lock/subsys/ # touch /var/lock/subsys/proftpd # ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd # vi /usr/local/etc/proftpd/proftpd.conf proftpd.confを編集して下記をファイル上部に貼り付けます。 CharsetLocal UTF-8 CharsetRemote CP932 ServerIdent on "" RootLogin off ListOptions "-la" DefaultRoot ~ !wheel RequireValidShell off UseReverseDNS off IdentLookups off TimesGMT off TimeoutIdle 600 TimeoutLogin 300 TimeoutNoTransfer 600 TimeoutStalled 600 ShowSymlinks on MaxClientsPerHost 2 MaxHostsPerUser 1 LogFormat allinfo "%t %u (%a [%h]) [%s], %T, %m (%f)" LogFormat write "%t %u %F (%a)" LogFormat read "%t %u %F (%a)" LogFormat auth "%t %u (%a [%h])" ExtendedLog /var/log/proftpd/all.log ALL allinfo ExtendedLog /var/log/proftpd/write.log WRITE write ExtendedLog /var/log/proftpd/read.log READ read ExtendedLog /var/log/proftpd/auth.log AUTH auth Directory /* AllowOverwrite on AllowStoreRestart on AllowRetrieveRestart on /Directory ファイルの最後にMySQLとの連携とQuotaの設定を追加します。Anonymousブロックは必要に応じてコメントしておきます。 IfModule mod_sql_mysql.c SQLAuthenticate users SQLConnectInfo proftpd@localhost 3306 proftpd proftpd SQLAuthTypes Crypt SQLUserInfo users userid password uid gid homedir shell SQLGroupInfo groups groupname gid members AuthOrder mod_sql.c /IfModule IfModule mod_quotatab.c QuotaEngine on QuotaLog /var/log/proftpd/quota-log QuotaLimitTable sql /get-quota-limit QuotaTallyTable sql /get-quota-tally/update-quota-tally/\ insert-quota-tally SQLNamedQuery get-quota-limit SELECT "userid, quota_type, \ per_session, limit_type, bytes_in_avail, bytes_out_avail, \ bytes_xfer_avail, files_in_avail, files_out_avail, \ files_xfer_avail FROM quotalimits WHERE userid = %{0} \ AND quota_type = %{1} " SQLNamedQuery get-quota-tally SELECT "userid, quota_type, \ bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, \ files_out_used, files_xfer_used FROM quotatallies WHERE \ userid = %{0} AND quota_type = %{1} " SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = \ bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, \ bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = \ files_in_used + %{3}, files_out_used = files_out_used + %{4}, \ files_xfer_used = files_xfer_used + %{5} WHERE userid = %{6} \ AND quota_type = %{7} " quotatallies SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, \ %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies QuotaLock /tmp/proftpd-quota-lock QuotaShowQuotas on QuotaDisplayUnits Gb QuotaDirectoryTally on /IfModule 仮想ユーザの登録 仮想ユーザをproftpdデータベースに登録します。 # chown -R mysql mysql /usr/local/var/ # mysql -u root -p Enter password Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 55 to server version 4.1.21-log Type help; or \h for help. Type \c to clear the buffer. mysql create database proftpd; mysql CREATE TABLE groups ( groupname VARCHAR(30) NOT NULL , gid SMALLINT(5) UNSIGNED NOT NULL DEFAULT 1000, members varchar(255) default NULL, PRIMARY KEY ( groupname ), UNIQUE KEY gid (gid) ); mysql CREATE TABLE users ( userid varchar(30) NOT NULL, password varchar(30) NOT NULL, uid SMALLINT(5) UNSIGNED NOT NULL DEFAULT 1000, gid SMALLINT(5) UNSIGNED NOT NULL DEFAULT 1000, homedir varchar(255) default NULL, shell varchar(255) default /bin/true , PRIMARY KEY (userid), UNIQUE KEY uid (uid) ); mysql CREATE TABLE quotalimits ( userid VARCHAR(30) NOT NULL, quota_type ENUM("user", "group", "class", "all") NOT NULL, per_session ENUM("false", "true") DEFAULT true NOT NULL, limit_type ENUM("soft", "hard") DEFAULT soft NOT NULL, bytes_in_avail FLOAT DEFAULT 0 NOT NULL, bytes_out_avail FLOAT DEFAULT 0 NOT NULL, bytes_xfer_avail FLOAT DEFAULT 0 NOT NULL, files_in_avail INT UNSIGNED DEFAULT 0 NOT NULL, files_out_avail INT UNSIGNED DEFAULT 0 NOT NULL, files_xfer_avail INT UNSIGNED DEFAULT 0 NOT NULL ); mysql CREATE TABLE quotatallies ( userid VARCHAR(30) NOT NULL, quota_type ENUM("user", "group", "class", "all") DEFAULT user NOT NULL, bytes_in_used FLOAT DEFAULT 0 NOT NULL, bytes_out_used FLOAT DEFAULT 0 NOT NULL, bytes_xfer_used FLOAT DEFAULT 0 NOT NULL, files_in_used INT UNSIGNED DEFAULT 0 NOT NULL, files_out_used INT UNSIGNED DEFAULT 0 NOT NULL, files_xfer_used INT UNSIGNED DEFAULT 0 NOT NULL ); mysql GRANT SELECT,UPDATE,INSERT ON proftpd.* TO proftpd@localhost IDENTIFIED BY proftpd ; mysql INSERT INTO groups VALUES ( testgroup ,1000, ); mysql INSERT INTO users VALUES ( testuser ,encrypt( testuser ),1001,1000, /var/ftpdata , /bin/true ); mysql INSERT INTO quotalimits VALUES ( testuser , user , false , hard , 524288000,0,0,0,0,0); ProFTPdを起動してFTPで接続確認を行います。 # /etc/init.d/mysql restart # /etc/init.d/proftpd restart ルータ配下の玄箱PROでFTPサーバ提供する際のNAT問題 玄箱PROはルータ配下で稼動し割り当てられているIPアドレスはプライベートアドレス グローバルアドレスが割り当てられているルータからはポート番号(21)指定で玄箱PROへポート転送 家庭内のプライベートアドレスからFTP接続 インターネット越しのグローバルIPアドレスからのFTP接続 インターネット越しかつルータ配下のプライベートアドレスからのFTP接続 これらを実現するための設定がProFTPDでは可能であるようです。 proftpd.confに以下の設定を追加します。 MasqueradeAddress domain-name | global-ipaddr PassivePorts min-port-number max-port-number 私の環境ではDynamicDNSを使用しているので登録されているドメイン名を domain-name | global-ipaddr に設定しました。これでStandalone時は起動時にIPアドレスを取得する動作をします。常時稼動でIPアドレスの動的変更に対応する場合はinetdにした方が良さそうです。 ポート番号はPassive接続で使用するポートの最小と最大で参考程度に私は10020 10034と15ほど取って設定しました。(MaxInstancesを15に設定したので) この設定にあわせてPassice接続を受け付けるためにルータのポート転送設定に10020-10034を追加します。 追加したproftpd.confの設定でPASVコマンドに対してMasqueradeAddressで指定したアドレスで応答されるようになるため、プライベートアドレスを返されて接続先が分からない、といった状況にならなくなります。 あとはルータに設定したポート転送で玄箱PROに転送されてくればPassive接続完了です。 ただし、この設定ではPassive接続するとグローバルアドレスで応答されるため、家庭内ではPassive接続できません。Port接続のみ可能となります。 中ではPort接続、外ではPassive接続という使い分けになります。 関連パッケージ KUROBOX-PRO ~# apt-get install libcdk5-dev Reading package lists... Done Building dependency tree... Done The following extra packages will be installed libc6-dev libcdk5 libncurses5-dev linux-kernel-headers Suggested packages glibc-doc manpages-dev Recommended packages gcc c-compiler The following NEW packages will be installed libc6-dev libcdk5 libcdk5-dev libncurses5-dev linux-kernel-headers 0 upgraded, 5 newly installed, 0 to remove and 15 not upgraded. 1 not fully installed or removed. Need to get 1856kB/5843kB of archives. After unpacking 27.1MB of additional disk space will be used. Do you want to continue [Y/n]? KUROBOX-PRO ~# apt-get install gcc Reading package lists... Done Building dependency tree... Done The following extra packages will be installed binutils cpp cpp-4.1 gcc-4.1 libssp0 Suggested packages binutils-doc cpp-doc gcc-4.1-locales make manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.1-doc Recommended packages libmudflap0-dev The following NEW packages will be installed binutils cpp cpp-4.1 gcc gcc-4.1 libssp0 0 upgraded, 6 newly installed, 0 to remove and 15 not upgraded. Need to get 16.6kB/4915kB of archives. After unpacking 12.3MB of additional disk space will be used. Do you want to continue [Y/n]? KUROBOX-PRO ~# apt-get install make Reading package lists... Done Building dependency tree... Done Suggested packages make-doc-non-dfsg The following NEW packages will be installed make 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 0B/381kB of archives. After unpacking 1229kB of additional disk space will be used. KUROBOX-PRO ~# apt-get install make Reading package lists... Done Building dependency tree... Done Suggested packages make-doc-non-dfsg The following NEW packages will be installed make 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 0B/381kB of archives. After unpacking 1229kB of additional disk space will be used. KUROBOX-PRO ~# apt-get install g++ Reading package lists... Done Building dependency tree... Done The following extra packages will be installed g++-4.1 libstdc++6-4.1-dev Suggested packages gcc-4.1-doc libstdc++6-4.1-doc The following NEW packages will be installed g++ g++-4.1 libstdc++6-4.1-dev 0 upgraded, 3 newly installed, 0 to remove and 15 not upgraded. Need to get 3408kB of archives. After unpacking 11.7MB of additional disk space will be used. Do you want to continue [Y/n]? KUROBOX-PRO ~# apt-get install zlib1g-dev Reading package lists... Done Building dependency tree... Done The following NEW packages will be installed zlib1g-dev 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 0B/410kB of archives. After unpacking 602kB of additional disk space will be used. KUROBOX-PRO /usr/local/src# apt-get install patch Reading package lists... Done Building dependency tree... Done Suggested packages diff-doc The following NEW packages will be installed patch 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 0B/101kB of archives. After unpacking 197kB of additional disk space will be used. KUROBOX-PRO ~# apt-get install autoconf2.13 Reading package lists... Done Building dependency tree... Done The following extra packages will be installed autoconf m4 Suggested packages autobook autoconf-archive gnu-standards autoconf-doc Recommended packages automaken automake1.4 The following NEW packages will be installed autoconf autoconf2.13 m4 0 upgraded, 3 newly installed, 0 to remove and 15 not upgraded. Need to get 976kB of archives. After unpacking 3547kB of additional disk space will be used. Do you want to continue [Y/n]? KUROBOX-PRO ~# apt-get install automake1.4 Reading package lists... Done Building dependency tree... Done The following extra packages will be installed autotools-dev The following NEW packages will be installed automake1.4 autotools-dev 0 upgraded, 2 newly installed, 0 to remove and 15 not upgraded. Need to get 333kB of archives. After unpacking 1163kB of additional disk space will be used. Do you want to continue [Y/n]? KUROBOX-PRO ~# apt-get install libtool Reading package lists... Done Building dependency tree... Done Suggested packages libtool-doc automaken g77 fortran77-compiler gcj Recommended packages libltdl3-dev The following NEW packages will be installed libtool 0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded. Need to get 328kB of archives. After unpacking 950kB of additional disk space will be used. Get 1 http //ftp.jaist.ac.jp etch/main libtool 1.5.22-4 [328kB] Fetched 328kB in 0s (679kB/s) Selecting previously deselected package libtool. (Reading database ... 17513 files and directories currently installed.) Unpacking libtool (from .../libtool_1.5.22-4_arm.deb) ... Setting up libtool (1.5.22-4) ... KUROBOX-PRO /usr/local/src# 最終更新日:2007-05-29
https://w.atwiki.jp/suffix/pages/16.html
Apache C /cygwin/etc/apache/httpd.confの#ServerName example.comを ServerName localhost等に変更。 C /cygwin/usr/sbinから./httpd startで起動 ps ax | grep httpd 等で動作しているか確認可能。 MySQL C /usr/local/share/mysql(インストールディレクトリのshareの中)内の ./mysql.server startで起動。 参考中ページ: http //dev.mysql.com/doc/refman/5.1/ja/can-not-connect-to-server.html http //www.hi-ho.ne.jp/tsumiki/book_sup2.html http //httpd.apache.org/docs/2.4/ 関連: Cygwin(c++)&MySQLインストール
https://w.atwiki.jp/extranote/pages/38.html
今回インストールしたのは MySQL 4.1 http //dev.mysql.com/downloads/mysql/4.1.html JavaとMySQLを取り持つドライバは MySQL Connector/J 3.1 http //dev.mysql.com/downloads/connector/j/3.1.html 日本語のMySQLサイト http //www-jp.mysql.com/ MySQLをインストールする時には、Launch the MySQL server Automatically にチェックしておく。 インストールしたら環境変数を設定 ■環境変数の設定(WindowsXPの場合) コントロールパネル→システム→システムのプロパティ→詳細設定→環境変数 を開く 変数 Path にMySQLの入ってる場所(フルパス)を追記。 変数と変数の間を区切るのはセミコロン ; でな。 ---------- 変数名 Path 変数値 %SystemRoot%\system32;%SystemRoot%; %SystemRoot%\System32\Wbem; C \Program Files\QuickTime\QTSystem\; %JAVA_HOME%\bin; C \Program Files\MySQL\MySQL Server 4.1\bin ----------
https://w.atwiki.jp/sanosoft/pages/73.html
MySQL5.6のインストール MySQL5.6をインストールします。 1. インストール yumのリポジトリの追加登録方法 (CentOS 7)で「MySQL」のリポジトリを追加して、MySQLの5.6をインストールします。 # yum --enablerepo=mysql56-community install mysql-community-server 2. MySQLの設定 (1) /etc/my.cnfの設定 MySQLの設定は、「/etc/my.cnf」で行います。 デフォルトでインストールされる「my.cnf」は設定項目が少ないので、元ファイルを退避して、新規に作成します。 # mv /etc/my.cnf /etc/my.cnf.default # vi /etc/my.cnf [mysqld] ##-------------------------------------------------------------------- # mysqldの基本設定 ##-------------------------------------------------------------------- # id は 1 から 2^32 -1 個の間で唯一の値になる必要がある # server-idはReplicationを使うときには重複されてはいけない # 単一システムの場合はDefaultの1で十分 server-id = 1 # サーバーを起動するユーザーの指定 user = mysql basedir = /usr # このディレクトリの所有権とグループはuserで指定したユーザーにする必要がある datadir = /var/lib/mysql # このディレクトリはMysqlサーバーが内部的に作業をするときに臨時ディレクトリとして使う # 例えば、大量のselect処理のため、臨時テーブルを作ったりする場合、ここにファイルが生成される。 tmpdir = /tmp socket = /var/lib/mysql/mysql.sock pid-file = /var/lib/mysql/mysqld.pid # 外部ロック(locking), システムロックを使わないようにする。この設定はMyISAMテーブルのみ影響がある。 #skip-external-locking # 文字セット指定 character-set-server = utf8 collation-server = utf8_general_ci # 基本(Default)のストレージエンジン # Mysqlサーバーが支援するストーレジエンジンの中で一つを選択できる。 # サーバーが支援するストレージエンジンは SHOW ENGINES コマンドで確認できる Aria default-storage-engine = innodb # Transactionレベルを設定します。 # レコード基盤のReplicationをするためにはREAD-COMMITED # DefaultはREPEATABLE-READ transaction-isolation = REPEATABLE-READ ##-------------------------------------------------------------------- # Network 設定 ##-------------------------------------------------------------------- # サーバーのポート指定 port = 3306 # サーバーに接続したClientの確認のためにIPを利用してClientのドメインを探すのを防ぐ # これを設定するとサーバーに接続したClientを定義するときにHostのFieldにドメインを使っては行けない、IPのみ使用可能。 # Clientのドメインを探す作業がなくなるので、性能がよくなる skip-name-resolve # Mysql ThreadPool (6.0 only) or mariadb #thread_handling = pool-of-threads #thread_pool_size = 32 #thread_pool_max_threads = 1024 #thread_pool_idle_timeout = 10 # 最大同時接続の指定、やけに大きい値を設定するのではなく適当に設定する必要がある # 接続した人がこの値を超えると"Too many connections error" というメッセージを出力する # Dynamicの設定も可能。 SET GLOBAL max_connections = 300 max_connections = 300 # Mysqlに接続可能なUserごとの最大同時接続者。 Defaultは0(Unlimited)である # Dynamicで設定可能。 SET GLOBAL max_user_connections = 1024 max_user_connections = 0 # Mysqlサーバーに接続したClientは色々なエラーが発生される。サーバーはこういうClient別のエラーをCountingして置く # もし、Clientが一定のCountingを超えるとMySQLは何か異常があると仮定して、それ以上の接続の要求をブロックする。 # Clinetが発生させるエラーの限界値を調整するための設定である。 Defaultは10だ。 # 設定した値に達すると"Host [client] is blocked because of many connection errors"エラーを発生させる。 # Dynamic設定は可能だ。 SET GLOBAL max_connect_errors = 1000000 # このCountの初期化は FLUSH HOSTS 命令でできる。 max_connect_errors = 1000000 # 接続したClientが何もせずにいるときに、Connectionを切断する時間。 単位は 秒 でDefaultは 28800秒(8時間)である。 # WEBでの接続の場合、Timeoutは大体 30秒 にWebサーバーのタイムアウトになってるため、DBのDefaultの値は大きい数値である。 # Dynamic での設定も可能だ。 SET GLOBAL wait_timeout = 600 wait_timeout = 600 # 非活性の状態から活性状態になるまでの待機時間。(seconds to waits for activity on interactive connection) # これは MySQL API の中で mysql_real_connect() メッソドを使っているApplicationだけに適用される。 単位は秒単位でDefaultは 600 だ。 # Dynamic での設定も可能。 SET GLOBAL interactive_timeout = 600 interactive_timeout = 600 # Bad handshake に応答する前にPacketの接続を待っている時間。 # "Lost connection to MySQL server at XXX , system error errno"というメッセージがよく出てきたら、この値を増やす必要がある。 # 単位は秒, Defaultは 10 だ。 # Dynamic の設定も可能だ SET GLOBAL connect_timeout = 10 connect_timeout = 10 # Clientからサーバーに送るQueryは一つのPacketで処理される。もし、サーバーに送られてくるQueryの大きさがこの値より小さいと増やす必要がある。 # 特にTableのカラムに BLOB タイプを使っている場合, バイナリ(Binary)の値、この値を増やす必要がある。 # 単位は byte, Defaultは 1048576(1MB) だ。限界値は 1GB である # Dynamicでの設定も可能である。 SET GLOBAL max_allowed_packet = 1048576 max_allowed_packet = 33554432 ##-------------------------------------------------------------------- # Logging ##-------------------------------------------------------------------- # 一般的なQueryのLog(general query log)とSlow Query Log(slow query log)が出力される場所を指定する # このオプションは他のオプションより強い権限がある。 この値が NONE の場合には、の他のオプションでログを記録するように設定しててもログは記録されない。 # Dynamic での設定も可能だ SET GLOBAL log_output = FILE log_output = FILE # Aborted connection..のような警告を error Logに書く。 Replicationを使っている場合、このオプションを使うのをお勧めする # Defaultは 1. # Dynamic の設定が可能である。 SET GLOBAL log_warnings = 131072 log_warnings = 1 # エラーとかMysqlのStartのログファイルを指定。 # ファイル名を指定しないと host_name.err を使用する。 拡張子を指定しないと .err が自動的に付く。 # Defaultはない。 Dynamic の設定は出来ない。 log_error =/var/lib/mysql/mysqld_error.log # 一般的なQueryログ(general query log)の使用有無を決める。 log_output の値が NONE なら、この値は無視される。 # Defaultは 0(0) # Dynamic の設定も可能だ。 SET GLOBAL log_output = 0 general_log = 0 # すべてのQueryを記録するファイルを指定。QueryログもしくはGeneralログと呼ばれる。 # ファイル名を指定しないと host_name.log になる。 # Dynamic での設定は可能だ。 SET GLOBAL general_log_file =/var/lib/mysql/general_query_all.log general_log_file = /var/lib/mysql/general_query_all.log # "OPTIMIZE TABLE, ANALYZE TABLE, and ALTER TABLE" のような管理命令について slow query を残すかどうかを決める。 # Default 0 # Dynamic の設定は出来ない。 log-slow-admin-statements = 1 # Index処理されない Full Scan のようなQueryについてのLog処理有無を決める。 # Default 0 # Dynamic の設定は可能だ。 SET GLOBAL log-queries-not-using-indexes = 1 log-queries-not-using-indexes = 1 # Slow Query Logを記録するかどうかを決める。 log_output の値が NONE なら、この値は無視される。(ON/OFF) # Default 0 # Dynamic の設定は可能だ。 SET GLOBAL slow_query_log = 0 slow_query_log = 1 # Slow Queryを記録する時間。この時間より大きいと記録される。(この時間が過ぎても処理が終わらないと) # 値は 0 ~ 10 の間だ # Default 10. # Dynamic で設定も可能だ。 SET GLOBAL long_query_time = 1 long_query_time = 2 # Slow Query Logファイルを指定 # ログファイル名を設定しないと host_name-slow.log になる # Dynamic で設定も可能。 SET GLOBAL slow_query_log_file =/var/lib/mysql/slow_query.log slow_query_log_file = /var/lib/mysql/slow_query.log # バイナリログを使う場合は # ログファイルの名前を入力する log-bin=mysql-bin # バイナリログを自動削除する日数 # Deafult 0. # Dynamic の設定は可能だ。 SET GLOBAL expire_logs_days = 5 expire_logs_days = 30 ##-------------------------------------------------------------------- # CacheとMemory ##-------------------------------------------------------------------- # thread_cache_size = threadをcacheにいくつ保存しておくのかを決める # 基準はQuestionsではなくConnectionsである。 # MySQLは接続終了後のサーバスレッドをいきなり解放せず、次の接続時に再利用 # できるようにキャッシュして置く。このため、切断後の再接続時のオーバーヘッド # をより軽減することができるのだ。デフォルトは0だが数百程度でもいいようだ。 # 細かいチューニングは実際の稼働状況を把握しないと何とも言えないが、とりあえず # max_connectionsの1/3ぐらいか # show statusの(Threads_created / Connections)の結果が # 0.01 すなわち 1% 以上なら、 thread_cache_size を増やす必要があると判断 # 同時接続者が多ければ多いほどこの値を増やす必要があるが、メモリの使用率も一緒に増える # Default 0. 単位はスレッドの数 # Dynamic で設定も可能だ。 SET GLOBAL thread_cache_size = 52 thread_cache_size = 52 # すべてのThreadが開いてCacheができるTableの数。 この値が増えると mysqld は file descriptors を増やす # Default 400. # Dynamic で設定も可能だ。 SET GLOBAL table_open_cache = 400 table_open_cache = 400 # この値は Memory ストレジエンジンに影響を及ぼす。 この値は Memory ストレジエンジンで MAX_ROWS 値を計算し使ったりもする。 # また、 MySQL サーバーがQueryを処理するのに、時々臨時テーブルをメモリを生成したりするが、 # その時、生成されるTableは Heap Tableと呼ばれている。 tmp_table_size と共に内部 Heap Tableの大きさに影響を及ぼす。 # 単位は byte. Defaultは 16777216(16MB)である # Dynamic で設定も可能だ。 SET GLOBAL max_heap_table_size = 16777216 max_heap_table_size = 33554432 # Memoryに生成される臨時のTableの最大の値。 Memoryに生成されるTable値がこの値を超えると MySQLはDiskに MyISAM Tableに変換する。 # Queryに GROUP By が多くて、メモリも十分な状態なら、この値を増やす必要がある。 # この値はユーザーが生成する Memory Tableには影響を与えない。 # 単位は Byte. DefaultはSystemに依存する。 # SHOW GLOBAL STATUS で、 Created_tmp_disk_tables と Created_tmp_tables に該当の統計情報が記録されてある。 # Dynamic で設定も可能だ。 SET GLOBAL tmp_table_size = 524288 tmp_table_size = 524288 # ソートの際に利用される領域。ORDER BYやGROUP BYを多用するのであればこの値も増やした方がいい。 # 各Sectionで整列のために与えられたBufferの大きさ。 この値はどのストレージエンジンに特化されたものではなく、最適化をするための一般的な値だ。 # SHOW GLOBAL STAUS で、 秒(より)/ Sort_merge_passes の値が多く感じたらQueryを改善するかIndexを改善する代わりに、この値を増やしてみるのもいい方法だ # しかし、2MB 以上は設定しないのをお勧めする。大体 64KB ~ 512KB の間が適当である # 単位は Byte. Default 2MB # Dynamic 設定は可能だ。 SET GLOBAL sort_buffer_size = 2097144 sort_buffer_size = 4MB #128kb # インデックスを使用する/しないにかかわらず、全文検索の時に使用される領域。 # テーブル全体をスキャンするSQL文を何度も実行する場合はこの値を調整した方がよい。 # ※「インデックスを使用しない場合に使われる」と書かれている場合もあり、どちらだか分からない。後で調べようと思う。 # MyISAM Tableに対して各Threadが sequentail scan をしようとしたときにこの大きさ分、Bufferを割り当てる。 # sequentail scan がよく発生するとこの値を増やす必要がある。 # 単位は Byte. Defaultは 131072 (128K) だ。 # Dynamic 設定も可能だ。 SET GLOBAL read_buffer_size = 16777216 read_buffer_size = 131072 # ソート後にレコードを読むときに使われる領域で、 # ディスクI/Oが減るためORDER BYの性能向上が期待できる。 1?2Mくらいが妥当? # MyISAM Tableから Key-sorting 整列によるデータをレコードから読み込むときにDiskから探すのを避けるためにこのBufferを使う。 # ORER BY をたくさん使っているのであれば、この値を増やすと、Performance向上の効果が期待できる # 単位は Byte. Default 262144(256K) だ。 # Dynamic 設定は可能だ。 SET GLOBAL read_rnd_buffer_size = 131072 read_rnd_buffer_size = 1MB # インデックスを用いない全文検索を伴うテーブル結合(フルジョイン)において、 # レコードデータのキャッシュに使われる領域。 # 一回のフルジョインにつき1つのジョインバッファが確保され、SQL文の実行終了とともに解放される。 # インデックスを用いないテーブル結合はパフォーマンスの観点からして避けるべきなので、 # この値は大きくする必要はないようだ。 # Minimum、 index scans, range index scans などを計画したり、Joinをするのに indexの利用ができず、Full Table Scanをする必要がある場合に使われる。 # Full Joinしないといけない状況がある場合、この値を増やすことで、Performanceが上がる効果がある。 # 単位は Byte. # Dynamic 設定は可能だ。 SET GLOBAL join_buffer_size = 131072 join_buffer_size = 131072 # MySQLの性能向上を図る上でかなり重要なメモリ領域で、 # SELECT文の実行結果をメモリ内にキャッシュする。100?200くらいが推奨されているよう。 # Queryの結果をCacheするためのメモリの量。 パラメタ名とは違ってQueryをCacheすることではなく、処理結果をCacheする。 # Queryの結果をCacheするため、 INSERT, UPDATE, DELETEが頻繁に起こるサーバーでは大きく設定する必要はない。 # 単位は Byte. Defaultは 0(disable). 128MB 以上、設定しない方がいいReplication(Slaveかな?)サーバーで Select のみする場合は、 128MB 以上の設定も可能。 # SHOW VARIABLES LIKE query_cache_size で、確認可能 # Dynamic 設定可能 SET GLOBAL query_cache_size = 131072 query_cache_size = 52MB #54525952 # 一つのQueryごとの結果をCacheする量を制限する。 query_cache_sizeはQueryの結果をCacheする全体のメモリの量を設定するパラメタで # query_cache_limit は各QueryごとにCacheする結果の量を意味する。 この値より大きいQueryの結果の場合はCacheしないという意味。 # 単位は Byte. Default 1048576(1M). # Dynamic 設定可能 SET GLOBAL query_cache_limit = 131072 query_cache_limit = 2097152 # MySQLではひとつのテーブルにつきひとつのファイルが割り当てられるが、table_cashe_sizeは # それらのテーブルのキャッシュに使用され、同時実効性をあげるための重要なパラメータとなる。 # MySQLサーバーは一度開いたファイルのポインタをtable_cacheに保存し、次回からの # アクセスを高速化するのである。目安は同時接続数 x テーブル数。1024?2048が一般的。 #table_cache = 1800 # old version table_open_cache = 1800 # mysql 5.6 ##-------------------------------------------------------------------- # MyISAM ##-------------------------------------------------------------------- # MyISAMテーブルに対して索引検索をする際にそのインデックス情報を格納する領域。 # MyISAMテーブルを多用する場合はこの値もある程度増やす。 # MyISAM テーブルのインデックスBlock(Index blocks)はBufferされ、すべてのThreadに共有される。 # このIndex BlocksはBufferのためのメモリの量だ。 データベース専用サーバに MyISAM エンジンのみ使う場合 # 全体のメモリの 25%を割り当てても問題ない # 単位は Byte. Default 8388608(8MB) # Dynamic 設定も可能だ。 SET GLOBAL key_buffer_size = 131072 key_buffer_size = 128MB #33554432 # bulk insert ? INSERT ... SELECT, INSERT ... VALUES (..),(..),... , LOAD_DATA_INFILE などを使うときに # Bufferを使い、速度をあげられる。 # 単位 Byte. Default 8388608 (8MB) # Dynamic 設定も可能だ。 SET GLOBAL bulk_insert_buffer_size = 131072 bulk_insert_buffer_size = 8MB #33554432 # CREATE INDEX, ALTE TABLE などでIndexを生成したり REPAIR_TABLE をするのにIndexの整列が必要な時、使うBuffer # 単位は Byte. Default 8388608 (8MB) # Dynamic 設定可能。 SET GLOBAL myisam_sort_buffer_size = 131072 myisam_sort_buffer_size = 2097152 # REPAIR_TABLE, ALTER_TABLE, LOAD_DATA_INFILE の中で MyISAM Indexを再生成しなければならない時に、許可する臨時ファイルの最大値 # 単位は Byte. Default 2147483648 (2GB) # Dynamic 設定も可能。 SET GLOBAL myisam_max_sort_file_size = 131072 myisam_max_sort_file_size = 2147483648 # 予期してないサーバーの中断などでサーバーが再起動されたときにRecoverするかどうかを決めるオプション # 0, DEFAULT, BACKUP, FORCE, QUICK の値をComma(,)で羅列して使用できる。 # Default 0. 値を設定しないと DEFAULT だ # Dynamic 設定可能。 myisam_recover_options = DEFAULT ##-------------------------------------------------------------------- # InnoDB behavior ##-------------------------------------------------------------------- # InnoDB テーブルで使うファイルの基本のフォーマットを設定する # Default Antelope # Dynamic 設定可能。 SET GLOBAL innodb_file_format = Barracuda innodb_file_format = Barracuda # InnoDBのBackground Threadである、I/O ThreadのRead/WriteのThreadの数を決める # innodb_read_io_threads のDefault: 4 # innodb_write_io_threads のDefault: 4 # Dynamic 設定可能。 innodb_read_io_threads = 4 innodb_write_io_threads = 4 # "SHOW TABLE STATUS", "SHOW INDEX" の情報を INFORMATION_SCHEMAのテーブルの統計に更新する # この変数が Disable になると大きいテーブルとかIndex、schemaへの接続速度をあげられる # この変数を Enable するとQueryのPlanするのに役に立ちます。 # Default 1 # Dynamic 設定可能。 SET GLOBAL innodb_stats_on_metadata = 1 innodb_stats_on_metadata = 1 # dirty pages のパーセントを超えないために InnoDBは buffer poolをデータFlushを(flush)試します。 # innodb での dirty pages のパーセンテージ # Default 75 # Dynamic 設定可能。 SET GLOBAL innodb_max_dirty_pages_pct = 75 innodb_max_dirty_pages_pct = 90 # InnoDB? apaptive hash index の利用有無を決める # adaptive hash index 機能は workload に有用 # Default 1 # Dynamic 設定可能。 SET GLOBAL innodb_adaptive_hash_index = 75 innodb_adaptive_hash_index = 1 # InnoDB buffer pool で dirty pages をFlushする比率を動的に調節するかどうかを決める # データのflushのタイミングをよりアグレッシブにしてくれる 設定で、builtinのInnoDBだと状況によっては # writeでI/Oがバーストの活動を避けられる目的で使える # Default 1 # Dynamic 設定可能。 SET GLOBAL innodb_adaptive_flushing = 75 innodb_adaptive_flushing = 1 # 特定の条件について警告をらターンするかエラーをリターンするかを決める strict SQL mode と類似している # Default 0 # Dynamic 設定可能。 SET GLOBAL innodb_strict_mode = 1 innodb_strict_mode = 1 # insert buffer からデータを合わせたり(merge) buffer poolからページを更新?(flush)のような # InnoDBのBackgroundのタスク(Task)によって実行されるときにI/O 活性の上限値(An upper limit)を設定 # Default 200 # Dynamic 設定可能。 SET GLOBAL innodb_io_capacity = 200 innodb_io_capacity = 600 # auto-increment の値を生成するときに lock mode を決める # Default 1 # Dynamic 設定可能。 innodb_autoinc_lock_mode = 1 # INSERT が発生されると補助インデックスがすぐ反映されずにメモリにBufferingにされる、これを利用するかしないかを決める。 # inserts, deletes, purges, changes, all, noneの中で選べる # Default all. # Dynamic 設定可能。 SET GLOBAL innodb_change_buffering = inserts innodb_change_buffering = inserts # このパラメータを設定すると、Old LRUリストに格納されたページに対して # 再びアクセスが発生しても、指定した時間が経過するまではYoung LRUリストに移動されないようになります。 # innodb_old_blocks_timeはミリ秒単位で指定し、デフォルトは0(無効)となっています。 innodb_old_blocks_time = 500 ##-------------------------------------------------------------------- # InnoDB base ##-------------------------------------------------------------------- # InnoDBをメインで使うなら、一番重要なパラメータ。 # InnoDBに対する各種操作の他、レコードデータなどのキャッシュ領域として利用され、 # 非同期I/Oスレッドやサーバスレッドがアクセスする。InnoDBバッファプール上 # データへのアクセスにはディスクI/Oが発生しないが、バッファプール内に収まり # きらなくなったデータはディスク上に退避されることになる。 # InnoDBがテーブルもしくはインデックスデータをCacheするためのBuffer Poolサイズ # ※この値を大きく設定するとDiskのI/Oを減らしてくれる # InnoDB 専用サーバーなら物理的なメモリの80%を割り当てても問題ない # Default 134217728 (128MB) # Dynamic 設定可能。 innodb_buffer_pool_size = 1GB #1073741824 # InnoDB のデータファイルの位置を指定 innodb_data_home_dir =/var/lib/mysql # InnoDB データファイルとその大きさを指定 # Default 10MB の大きさでファイル名は ibdata1 だ。 innodb_data_file_path = ib_data 100M autoextend # 基本的に InnoDBはシステムテーブルスペースと呼ばれるところにすべてのテーブルが生成される。 # この変数を活性化するとシステムテーブルスペースの代わりにデータとインデックスを別途のファイルに保存する。 # 拡張子は .ibd # Default 0 # この機能は 5.6.1 以上から使える # Dynamic 設定可能。 SET GLOBAL innodb_file_per_table = 1 innodb_file_per_table = 1 # InnoDB システムテーブルが容量いっぱいになったら、拡張するが、拡張する大きさを決める。 # Default 8 MB # Dynamic 設定可能。 SET GLOBAL innodb_autoextend_increment = 10MB innodb_autoextend_increment = 10MB # InnoDB redo log ファイルが生成されるディレクトリを指定。 生成されるファイル数は innodb_log_files_in_groupで指定。 # InnoDB 値を指定しないと 5MB 大きさの ib_logfile0, ib_logfile1 二つのファイルが生成される。 # Dynamic 設定可能。 innodb_log_group_home_dir =/var/lib/mysql # InnoDB Shutdownモードを決める設定。 この値が 0 なら、InnoDBはFull PURGE, insert Bufferをmerging(反映する)Slow Downになる。 # Default 1 # Dynamic 設定可能。 SET GLOBAL innodb_fast_shutdown = 1 innodb_fast_shutdown = 0 # ロググループのログファイル数を指定 # Default 2 # Dynamic 設定可能。 innodb_log_files_in_group = 4 # ロググループの各ログファイルのサイズを決める。 1MBから innodb_buffer_pool_size/innodb_log_files_in_group で出た値を設定する # Default 5MB # Dynamic 設定可能。 innodb_log_file_size = 268435456 # InnoDBログパッファはInnoDBテーブルに対する更新ログ、いわゆるトランザクション # ログを管理し、InnoDB専用スレッドやサーバスレッドがアクセスする領域。 # Oracleで言うとREDOログに相当する。トランザクション終了時(コミット時やロールバック時)、 # バッファがいっぱいになった時、一定時間ごとにディスクに書き込まれる。 # 実行途中のトランザクションの多くはこのバッファで管理される。 # 1つのトランザクション内で多くのデータを更新するのであればサイズを大きくした方がいいが、 # それほど気にしなくてもよさそうではある。1?8Mの範囲が推奨されている。 # ログのBufferのためにサイズを指定。たくさん割り当てる必要はないかも。。 # Default 8388608 (8MB) # Dynamic 設定可能。 innodb_log_buffer_size = 16777216 # InnoDBテーブルの定義情報など、データディクショナリ情報を格納する。 # この領域が足りなくなったらエラーログに警告を出すとともに、OSのメモリ領域 # から追加で割り当てられる。それほど気にする必要はないが、InnoDBテーブルの # 数を多くする場合はこの値も多少増やした方がいい、かも。 innodb_additional_mem_pool_size = 8MB # XA Transactionで two-phase commit を支援するかどうかを決める。 # 一つのThreadでデータの変更を実行する場合はこのオプションは利用しない方がいい # Default TRUE # Dynamic 設定可能。 SET GLOBAL innodb_support_xa = TRUE innodb_support_xa = FALSE # 処理を同時に実行できるスレッド数の上限値 # 処理を並列に行うとスループット(単位時間当たり処理量)の向上が期待出来るが、 # 同時に実行中のスレッドがあまりに多すぎるとロックの競合が多発してしまって返って性能を落とす原因になってしまう # 上限値にThreadが達するとFIFOのQueueに待機状態になる。 # Default 0 (infinite concurrency) # Dynamic 設定可能。 SET GLOBAL innodb_thread_concurrency = 1 innodb_thread_concurrency = 100 #0 # InnoDB transactionが row lock がかかった時に、待つ時間 # Default 50. 単位は秒(second) # Dynamic 設定可能。 SET GLOBAL innodb_lock_wait_timeout = 50 innodb_lock_wait_timeout = 60 # InnoDBで、TransactionがCommitされるたびに、Diskに書くかどうかを決める # Default 1 # Dynamic 設定可能。 SET GLOBAL innodb_flush_log_at_trx_commit = 1 innodb_flush_log_at_trx_commit = 1 # MySQL サーバーが起動される際に InnoDBを復旧作業を実行するが, 復旧作業がうまくいかなかったら復旧されない。 # この時、この値を指定してサーバを始めると各数字に沿って復旧のレベルが決められる。 # デフォルトは 0 (強制的な復旧を行わない通常の起動) # Dynamic 設定可能。 innodb_force_recovery = 0 # UNIX/Linuxにおいてデータファイル、ログファイルの読み書き方式を指定するためのもの # Bufferの読み書き方式 # Default fdatasync # Dynamic 設定可能。 innodb_flush_method = O_DIRECT # この機能を使うと InnoDBはデータを2回保存する、1回目はdoublewrite buffer, # 2回目は実際の data files 書く # Default 1 # Dynamic 設定可能。 innodb_doublewrite = 1 # Threadがサスペンド(中止される)前に InnoDB Mutex(相互排他ロック)が切れる前に待つ時間? # Default 30 # Dynamic 設定可能。 SET GLOBAL innodb_sync_spin_loops = 20 innodb_sync_spin_loops = 20 # autocmmit = 0 の場合、 InnoDB は "LOCK TABLES"になる。 # もし、この変数を活性化すると autocmmit =0 である状態で "LOCK TABLES" コマンドで # 内部的に InnoDBはテーブルロック(lock)する。 # Dynamic 設定可能。 SET GLOBAL innodb_table_locks = 1 innodb_table_locks = 1 # InnoDB QueueをJoiningする前に InnoDB Threadをどれぐらい待たせるのかを設定 # innodb_concurrency_ticketsが0になったスレッドは、システム変数innodb_thread_sleep_delayで設定された時間だけ待ってInnoDBキューに加わる。 # Default 10000, 単位は microseconds # Dynamic 設定可能。 SET GLOBAL innodb_thread_sleep_delay = 10000 innodb_thread_sleep_delay = 1000 # purge(PURGE LOGSログファイルの削除) 処理が遅い時、 INSERT, UPDATE, DELETE 処理をどれぐらい遅延させるかを設定 # Defaultは 0, 単位は millisconds だ。 # Dynamic で設定できる。 SET GLOBAL innodb_max_purge_lag = 10000 innodb_max_purge_lag = 0 # 同時にCommitができるThreadの数。 0 は制限なし # Defaultは 0 # この設定はRuntimeで 0 には変更できない # 0 以外は変更できる # 制限が入って Dynamic 変更可能。 SET GLOBAL innodb_commit_concurrency = 100 innodb_commit_concurrency = 0 # InnoDB に同時に入る事ができるスレッドの数 # スレッドが InnoDB に入ろうとする時にもし並行処理の限度までスレッド数が達していたら、それらは列になる # Default 500 # Dynamic 設定も可能 SET GLOBAL innodb_concurrency_tickets = 500 innodb_concurrency_tickets = 500 ##-------------------------------------------------------------------- # mysqldump ##-------------------------------------------------------------------- [mysqldump] # TableをDumpするときに、 MySQLはサーバのメモリをBufferingする。 でも大きいテーブルをDumpするときに、メモリBufferingをするとサーバに問題が起きる可能性がある。 # このメモリBufferingを消すためのパラメタ。 # Default:メモリBuffer使用する quick # ユーザプロセスとサーバスレッドの間で、SQL文による問合せやその結果をやりとりする際に # 使用される領域の最大サイズを指定する。 # これより大きなサイズのデータ通信はできない。 # デフォルトは1Mだが、大きなサイズのデータを扱う場合はこの値も大きくした方がいい。 # Default 1M max_allowed_packet = 32MB #33554432 ##-------------------------------------------------------------------- # mysql console ##-------------------------------------------------------------------- [mysql] # mysql で、Defaultの文字セット指定 default-character-set = utf8 # コマンドの自動完成機能、 # あれば、楽だがシステムのメモリを使うため、使わない方がいい no-auto-rehash # MySQL で、警告(Warning)が発生すると表示はせず、その結果に警告があるかどうかだけ、出るようになっていて、 "SHOW WARNINGS;"を利用してみなければならないが # 警告が発生するとそのまま表示してくれるように設定できる show-warnings # MySQL ClientのPromptを変更する #prompt=\u@\h \d\_\R \m \\s prompt=mysql # paging 機能を支援する。 pager="less -n -i -F -X -E" ##-------------------------------------------------------------------- # mysql client ##-------------------------------------------------------------------- [client] socket = /var/lib/mysql/mysql.sock port = 3306 (2) DBの初期化 初期DBの作成を行います。 # mysql_install_db --datadir=/var/lib/mysql --user=mysql (3) MySQLの起動 設定が完了したら、MySQLのサービスを起動します。 # systemctl start mysqld.service (4) 自動起動設定 サーバを再起動した場合に自動的にサービスが起動するようにします。 # systemctl enable mysqld.service (5) mysql_secure_installationの実行 MySQLのセキュリティを向上させるために「mysql_secure_installation」を実行します。 # /usr/bin/mysql_secure_installation このコマンドは、 rootユーザのパスワード文字列を設定する anonymousユーザを削除する リモートからのrootログインを禁止する TESTデータベースを削除する 権限を再読み出しする という作業を対話式に順次実行します。 3. rootパスワードの設定 インストール直後のMySQLは「root」ユーザにパスワードが設定されていないので、パスワードを設定します。 ※前述の「mysql_secure_installation」を実行した場合には不要です。 MySQLにログインします。 # mysql -u root パスワードを設定します。 mysql SET PASSWORD FOR root@localhost=PASSWORD( xxxxxx ); mysql exit; パスワードなしでログインしてエラーが発生することを確認します。 # mysql -u root ERROR 1045 (28000) Access denied for user root @ localhost (using password NO) 設定したパスワードでログインできることを確認します。 # mysql -u root -p パスワードを入力します。 Enter password ログインできればOKです。
https://w.atwiki.jp/oreore1999/pages/30.html
vim + putty 256色化 v1 2008/11/22 +参考サイト http //centossrv.com/mysql.shtml http //www.phpmyadmin.net/pma_localized_docs/Documentation_ja.html +関連ソフトウェアバージョン phpMyAdmin 3.1.0 all-langages php5.2.6 MySQL5.0.4 CentOS5.2 # yum -y install mysql-server # cp /etc/my.conf /etc/my.conf.orig # vim /etc/my.conf [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 default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # service mysqld start # chkconfig mysqld on # mysql -u root set password for root@localhost=password( rootパスワード ); set password for root@127.0.0.1=password( rootパスワード ); http //www.phpmyadmin.net/home_page/index.phpからphpMyAdminを落としてくる
https://w.atwiki.jp/wiki6_takt/pages/52.html
MySQLインストール インストール # cd /tmp/src # wget http //dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz/from/http //ftp.iij.ad.jp/pub/db/mysql/ # tar zxvf mysql-5.0.45.tar.gz # cd mysql-5.0.45 # groupadd mysql # adduser -g mysql mysql # ./configure --prefix=/usr/local/mysql --datadir=/data/mysql/data --with-mysqld-user=mysql --with-extra-charsets=all --with-charset=utf8 # make # make install 初期設定&フォルダ権限変更 # chown -R mysql mysql /usr/local/mysql (スクリプトフォルダ) # cd /usr/local/mysql # cp /tmp/src/mysql-5.0.45/.support-files/my-medium.cnf /etc/my.cnf # /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/var/mysql/data (データディレクトリ指定) # chown -R root . (rootフォルダ) # chown -R mysql mysql /usr/local/mysql/var (データフォルダ) 起動スクリプトコピー # cp /tmp/src/mysql-5.0.45/support-files/mysql.server /etc/rc.d/init.d/mysqld 起動スクリプトより起動 # /etc/rc.d/init.d/mysqld start MySQLログイン # /usr/local/mysql/bin/mysql -u root -p 無名ユーザー削除 mysql select user, password, host from mysql.user; mysql delete from mysql.user where user=""; rootパスワード設定 mysql GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY パスワード WITH GRANT OPTION; MySQLのパスを通す # vi /etc/profile 最終行に以下を追加 export PATH=/usr/local/mysql/bin $PATH
https://w.atwiki.jp/nerikesi/pages/23.html
MYSQLとApacheを起動させるバッチ 自動起動 ------------------------------------------------------ C if exist C \Program Files\Apache Group\Apache2\bin ( cd C \Program Files\Apache Group\Apache2\bin apache.exe -k start ) net start mysql ------------------------------------------------------- 自動停止 C if exist C \Program Files\Apache Group\Apache2\bin ( cd C \Program Files\Apache Group\Apache2\bin apache.exe -k stop ) net stop mysql パスは各自書き換えてください。