2017년 8월 14일 월요일

CentOS 7.x nslookup yum install

CentOS 7.x nslookup yum install



[root@ctb ~]# nslookup
-bash: nslookup: command not found

[root@ctb ~]# yum install bind-utils
......
================================================================================
 Package             Arch        Version                     Repository    Size
================================================================================
Installing:
 bind-utils          x86_64      32:9.9.4-50.el7_3.1         updates      202 k
Installing for dependencies:
 bind-libs           x86_64      32:9.9.4-50.el7_3.1         updates      1.0 M
Updating for dependencies:
 bind-libs-lite      x86_64      32:9.9.4-50.el7_3.1         updates      730 k
 bind-license        noarch      32:9.9.4-50.el7_3.1         updates       83 k

Transaction Summary
================================================================================
Install  1 Package  (+1 Dependent package)
Upgrade             ( 2 Dependent packages)

Total download size: 2.0 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/4): bind-libs-lite-9.9.4-50.el7_3.1.x86_64.rpm          | 730 kB   00:02
(2/4): bind-license-9.9.4-50.el7_3.1.noarch.rpm            |  83 kB   00:01
(3/4): bind-libs-9.9.4-50.el7_3.1.x86_64.rpm               | 1.0 MB   00:01
(4/4): bind-utils-9.9.4-50.el7_3.1.x86_64.rpm              | 202 kB   00:02
--------------------------------------------------------------------------------
Total                                              735 kB/s | 2.0 MB  00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : 32:bind-license-9.9.4-50.el7_3.1.noarch                      1/6
  Installing : 32:bind-libs-9.9.4-50.el7_3.1.x86_64                         2/6
  Installing : 32:bind-utils-9.9.4-50.el7_3.1.x86_64                        3/6
  Updating   : 32:bind-libs-lite-9.9.4-50.el7_3.1.x86_64                    4/6
  Cleanup    : 32:bind-libs-lite-9.9.4-38.el7_3.3.x86_64                    5/6
  Cleanup    : 32:bind-license-9.9.4-38.el7_3.3.noarch                      6/6
  Verifying  : 32:bind-license-9.9.4-50.el7_3.1.noarch                      1/6
  Verifying  : 32:bind-libs-lite-9.9.4-50.el7_3.1.x86_64                    2/6
  Verifying  : 32:bind-utils-9.9.4-50.el7_3.1.x86_64                        3/6
  Verifying  : 32:bind-libs-9.9.4-50.el7_3.1.x86_64                         4/6
  Verifying  : 32:bind-libs-lite-9.9.4-38.el7_3.3.x86_64                    5/6
  Verifying  : 32:bind-license-9.9.4-38.el7_3.3.noarch                      6/6

Installed:
  bind-utils.x86_64 32:9.9.4-50.el7_3.1

Dependency Installed:
  bind-libs.x86_64 32:9.9.4-50.el7_3.1

Dependency Updated:
  bind-libs-lite.x86_64 32:9.9.4-50.el7_3.1
  bind-license.noarch 32:9.9.4-50.el7_3.1

Complete!

2017년 6월 16일 금요일

PHPExcel 비밀번호 설정 기능 동작안함

PHPExcel 비밀번호 설정 기능 동작안함



1.8.0 버전에서 아래코드로 확인한 바 작동하지 않는다.


$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
$objPHPExcel->getSecurity()->setWorkbookPassword('1234');

이 코드도 안되고

$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
$objPHPExcel->getActiveSheet()->getProtection()->setPassword('1234');

이 코드도 먹히지 않는다.


안되는데 함수는 왜 있는걸까??

엑셀문서에 암호를 거는 방법은 정말 없단말인가~~

2017년 5월 2일 화요일

MySQL Replication 가끔 누락되는 데이터

MySQL Replication 가끔 누락되는 데이터


DB Master 와 Slave 서버로 Replication 으로 동기화 운영중인데

하루에 몇 건 정도는 싱크가 누락되는 것 같다.

이유가 무엇일까 궁금하다~

cron 으로 두 DB 의 테이블을 비교하는 스크립트를 돌려서 다르면 다시 맞춰주고 있지만

제대로 Replication 이 되면 얼마나 좋을까~

그냥 푸념해본다~

2017년 4월 21일 금요일

CentOS 7.x minimal ifconfig command not found

CentOS 7.x minimal ifconfig command not found



[root@localhost ~]# ifconfig
-bash: ifconfig: command not found

[root@localhost ~]# netstat
-bash: netstat: command not found


[root@localhost ~]# yum install net-tools
...
Dependencies Resolved

================================================================================
 Package         Arch         Version                          Repository  Size
================================================================================
Installing:
 net-tools       x86_64       2.0-0.17.20131004git.el7         base       304 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 304 k
Installed size: 917 k
Is this ok [y/d/N]: y
Downloading packages:
net-tools-2.0-0.17.20131004git.el7.x86_64.rpm              | 304 kB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : net-tools-2.0-0.17.20131004git.el7.x86_64                    1/1
  Verifying  : net-tools-2.0-0.17.20131004git.el7.x86_64                    1/1

Installed:
  net-tools.x86_64 0:2.0-0.17.20131004git.el7


Complete!


2017년 4월 7일 금요일

CentOS 6.x X Window 삭제

CentOS 6.x X Window 삭제


서버호스팅을 신청했더니 불필요한 X윈도우까지 설치가 되어 있네요.

삭제하는 방법은 yum 그룹리스트가 있는 확인하고 삭제하면 됩니다.

[root@vps ~]# yum grouplist "X Window System"
Loaded plugins: fastestmirror, security
Setting up Group Process
Loading mirror speeds from cached hostfile
 * base: mirror.oasis.onnetcorp.com
 * epel: mirror.premi.st
 * extras: mirror.oasis.onnetcorp.com
 * rpmforge: ftp.neowiz.com
 * updates: mirror.oasis.onnetcorp.com
Available Groups:
   X Window System
Done
[root@vps ~]# yum groupremove "X Window System"
Loaded plugins: fastestmirror, security
Setting up Group Process
Loading mirror speeds from cached hostfile
 * base: mirror.oasis.onnetcorp.com
 * epel: mirror.premi.st
 * extras: mirror.oasis.onnetcorp.com
 * rpmforge: ftp.neowiz.com
 * updates: mirror.oasis.onnetcorp.com
Resolving Dependencies
--> Running transaction check
---> Package hal.x86_64 0:0.5.14-14.el6 will be erased
--> Processing Dependency: hal >= 0.5.10 for package: hal-info-20090716-5.el6.noarch
--> Processing Dependency: hal = 0.5.14-14.el6 for package: hal-devel-0.5.14-14.el6.x86_64
--> Processing Dependency: hal for package: pm-utils-1.2.5-11.el6.x86_64
---> Package xorg-x11-server-utils.x86_64 0:7.7-14.el6 will be erased
---> Package xorg-x11-xauth.x86_64 1:1.0.9-1.el6 will be erased
---> Package xorg-x11-xinit.x86_64 0:1.0.9-14.el6 will be erased
--> Processing Dependency: xorg-x11-xinit >= 1.0.2-22.fc8 for package: imsettings-0.108.0-3.6.el6.x86_64
--> Running transaction check
---> Package hal-devel.x86_64 0:0.5.14-14.el6 will be erased
---> Package hal-info.noarch 0:20090716-5.el6 will be erased
---> Package imsettings.x86_64 0:0.108.0-3.6.el6 will be erased
---> Package pm-utils.x86_64 0:1.2.5-11.el6 will be erased
--> Processing Dependency: pm-utils for package: libvirt-client-0.10.2-62.el6.x86_64
--> Running transaction check
---> Package libvirt-client.x86_64 0:0.10.2-62.el6 will be erased
--> Processing Dependency: libvirt-qemu.so.0()(64bit) for package: libvirt-devel-0.10.2-62.el6.x86_64
--> Processing Dependency: libvirt.so.0()(64bit) for package: libvirt-devel-0.10.2-62.el6.x86_64
--> Processing Dependency: libvirt-client = 0.10.2-62.el6 for package: libvirt-devel-0.10.2-62.el6.x86_64
--> Processing Dependency: libvirt-client >= 0.9.12 for package: libvirt-java-0.4.9-1.el6.noarch
--> Running transaction check
---> Package libvirt-devel.x86_64 0:0.10.2-62.el6 will be erased
---> Package libvirt-java.noarch 0:0.4.9-1.el6 will be erased
--> Processing Dependency: libvirt-java = 0.4.9-1.el6 for package: libvirt-java-devel-0.4.9-1.el6.noarch
--> Running transaction check
---> Package libvirt-java-devel.noarch 0:0.4.9-1.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                    Arch        Version                Repository  Size
================================================================================
Removing:
 hal                        x86_64      0.5.14-14.el6          @base      1.2 M
 xorg-x11-server-utils      x86_64      7.7-14.el6             @base      364 k
 xorg-x11-xauth             x86_64      1:1.0.9-1.el6          @base       89 k
 xorg-x11-xinit             x86_64      1.0.9-14.el6           @base       71 k
Removing for dependencies:
 hal-devel                  x86_64      0.5.14-14.el6          @base       48 k
 hal-info                   noarch      20090716-5.el6         @base      311 k
 imsettings                 x86_64      0.108.0-3.6.el6        @base      813 k
 libvirt-client             x86_64      0.10.2-62.el6          @base       15 M
 libvirt-devel              x86_64      0.10.2-62.el6          @base      5.0 M
 libvirt-java               noarch      0.4.9-1.el6            @base       73 k
 libvirt-java-devel         noarch      0.4.9-1.el6            @base       15 k
 pm-utils                   x86_64      1.2.5-11.el6           @base      254 k

Transaction Summary
================================================================================
Remove       12 Package(s)

Installed size: 23 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : libvirt-devel-0.10.2-62.el6.x86_64                          1/12
  Erasing    : libvirt-java-devel-0.4.9-1.el6.noarch                       2/12
  Erasing    : libvirt-java-0.4.9-1.el6.noarch                             3/12
  Erasing    : hal-devel-0.5.14-14.el6.x86_64                              4/12
  Erasing    : libvirt-client-0.10.2-62.el6.x86_64                         5/12
  Erasing    : hal-info-20090716-5.el6.noarch                              6/12
  Erasing    : hal-0.5.14-14.el6.x86_64                                    7/12
  Erasing    : pm-utils-1.2.5-11.el6.x86_64                                8/12
  Erasing    : imsettings-0.108.0-3.6.el6.x86_64                           9/12
  Erasing    : xorg-x11-xinit-1.0.9-14.el6.x86_64                         10/12
  Erasing    : 1:xorg-x11-xauth-1.0.9-1.el6.x86_64                        11/12
  Erasing    : xorg-x11-server-utils-7.7-14.el6.x86_64                    12/12
  Verifying  : xorg-x11-server-utils-7.7-14.el6.x86_64                     1/12
  Verifying  : pm-utils-1.2.5-11.el6.x86_64                                2/12
  Verifying  : xorg-x11-xinit-1.0.9-14.el6.x86_64                          3/12
  Verifying  : hal-info-20090716-5.el6.noarch                              4/12
  Verifying  : hal-devel-0.5.14-14.el6.x86_64                              5/12
  Verifying  : libvirt-client-0.10.2-62.el6.x86_64                         6/12
  Verifying  : 1:xorg-x11-xauth-1.0.9-1.el6.x86_64                         7/12
  Verifying  : imsettings-0.108.0-3.6.el6.x86_64                           8/12
  Verifying  : hal-0.5.14-14.el6.x86_64                                    9/12
  Verifying  : libvirt-java-devel-0.4.9-1.el6.noarch                      10/12
  Verifying  : libvirt-java-0.4.9-1.el6.noarch                            11/12
  Verifying  : libvirt-devel-0.10.2-62.el6.x86_64                         12/12

Removed:
  hal.x86_64 0:0.5.14-14.el6          xorg-x11-server-utils.x86_64 0:7.7-14.el6
  xorg-x11-xauth.x86_64 1:1.0.9-1.el6 xorg-x11-xinit.x86_64 0:1.0.9-14.el6

Dependency Removed:
  hal-devel.x86_64 0:0.5.14-14.el6        hal-info.noarch 0:20090716-5.el6
  imsettings.x86_64 0:0.108.0-3.6.el6     libvirt-client.x86_64 0:0.10.2-62.el6
  libvirt-devel.x86_64 0:0.10.2-62.el6    libvirt-java.noarch 0:0.4.9-1.el6
  libvirt-java-devel.noarch 0:0.4.9-1.el6 pm-utils.x86_64 0:1.2.5-11.el6

Complete!

2017년 3월 28일 화요일

UNISON Waiting for changes from server

UNISON Waiting for changes from server



unison 을 실행하였는데 "Waiting for changes from server" 메시지 출력 이후 한참 기다려도 끝이 안나는데 그래도 기다리면 결과가 나옵니다.

이유는 두 서버에 파일이 많으면 파일 비교 데이터를 생성하는 과정에서  시간이 걸리기 때문입니다.

서버 사양에 따라 다르겠지만 7기가 조금 넘은 분량인데 10분 정도 걸렸습니다.

# unison
Contacting server...
Connected [//mydomain2.com//home -> //mydomain1.com//home]
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
        /home
        //mydomain1.com//home
This can happen either
because this is the first time you have synchronized these roots,
or because you have upgraded Unison to a new version with a different
archive format.

Update detection may take a while on this run if the replicas are
large.

Unison will assume that the 'last synchronized state' of both replicas
was completely empty.  This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.

If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations.  See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.

Donations to the Unison project are gratefully accepted:
http://www.cis.upenn.edu/~bcpierce/unison

  Waiting for changes from server
Reconciling changes
Nothing to do: replicas have been changed only in identical ways since last sync.

2017년 3월 27일 월요일

CentOS 7.x lsyncd Error: Temporary or permanent failure on startup

CentOS 7.x lsyncd Error: Temporary or permanent failure on startup



# systemctl start lsyncd
Mon Mar 27 15:45:27 2017 Error: Temporary or permanent failure on startup of "/home/". Terminating since "insist" is not set.


Main Server


# cat /etc/ssh/sshd_config | grep PermitRoot
PermitRootLogin no


# vi /etc/ssh/sshd_config

#PermitRootLogin no
PermitRootLogin yes


# systemctl restart sshd


Backup Server


# ssh-keygen
# ssh-copy-id root@mainserverip
# systemctl start lsyncd

2017년 3월 22일 수요일

CentOS 7.x mod_cband compile error

CentOS 7.x mod_cband compile error



# ./configure
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

# yum install gcc

# ./configure
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking whether make sets $(MAKE)... yes
checking for apr_palloc in -laprutil... no
checking for an ANSI C-conforming const... yes
checking for apxs... no
checking for apxs2... no
configure: error: apxs missing

# yum install httpd-devel


# make

apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -c src/mod_cband.c
/usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic  -DLINUX -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr-1   -I/usr/include/apr-1  -Wall -DDST_CLASS=3  -c -o src/mod_cband.lo src/mod_cband.c && touch src/mod_cband.slo
src/mod_cband.c: In function 'mod_cband_create_traffic_size':
src/mod_cband.c:1054:15: warning: comparison with string literal results in unspecified behavior [-Waddress]
     if ((unit != "" && unit[0] == 'G') || (unit == "" && kb >= mult*mult)) {
               ^
src/mod_cband.c:1054:49: warning: comparison with string literal results in unspecified behavior [-Waddress]
     if ((unit != "" && unit[0] == 'G') || (unit == "" && kb >= mult*mult)) {
                                                 ^
src/mod_cband.c:1058:15: warning: comparison with string literal results in unspecified behavior [-Waddress]
     if ((unit != "" && unit[0] == 'M') || (unit == "" && kb >= mult)) {
               ^
src/mod_cband.c:1058:49: warning: comparison with string literal results in unspecified behavior [-Waddress]
     if ((unit != "" && unit[0] == 'M') || (unit == "" && kb >= mult)) {
                                                 ^
src/mod_cband.c: In function 'mod_cband_get_dst':
src/mod_cband.c:1333:47: error: 'conn_rec' has no member named 'remote_ip'
     p.add.sin.s_addr = inet_addr(r->connection->remote_ip);
                                               ^
src/mod_cband.c: In function 'mod_cband_get_remote_host':
src/mod_cband.c:1362:10: error: 'struct conn_rec' has no member named 'remote_i '
     if (c->remote_ip != NULL)
          ^
src/mod_cband.c:1363:20: error: 'struct conn_rec' has no member named 'remote_i '
  addr = inet_addr(c->remote_ip);
                    ^
src/mod_cband.c:1365:10: error: 'struct conn_rec' has no member named 'remote_addr'
  addr = c->remote_addr->sa.sin.sin_addr.s_addr;
          ^
src/mod_cband.c: In function 'mod_cband_update_speed':
src/mod_cband.c:1905:19: warning: variable 'time_last_request' set but not used [-Wunused-but-set-variable]
     unsigned long time_last_request;
                   ^
src/mod_cband.c: In function 'mod_cband_check_connections_speed':
src/mod_cband.c:2963:19: warning: variable 'time_now' set but not used [-Wunused-but-set-variable]
     unsigned long time_now;
                   ^
apxs:Error: Command failed with rc=65536
.
make: *** [src/.libs/mod_cband.so] Error 1


# sed -i 's/remote_ip/client_ip/g' ./src/mod_cband.c
# sed -i 's/c->remote_addr/c->client_addr/g' ./src/mod_cband.c
# make
# make install


CentOS 7.x How to open 53 port

CentOS 7.x How to open 53 port


[root@vps log]# firewall-cmd --permanent --zone=public --add-service=dns
success
[root@vps log]# firewall-cmd --reload
success
[root@vps log]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client dns ftp http https mysql ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks: echo-request
  rich rules:

[root@vps log]# netstat -ant | grep :53
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN


how to remove

# firewall-cmd --permanent --zone=public --remove-service=dns

2017년 3월 21일 화요일

MariaDB charset UTF8 설정

MariaDB charset UTF8 설정


CentOS 7.x 버전에 APM 을 설치했더니 MySQL 디폴트 문자셋이 latin1 으로 되어있네요.

/etc/my.cnf 를 수정해주면 됩니다.

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

init_connect='set names utf8'
character-set-server=utf8

위 두줄은 추가해주고

# systemctl restart mariadb

2017년 3월 20일 월요일

How to fix, Replication slave server Error Duplicate entry

How to fix, Replication slave server Error Duplicate entry


Error 'Duplicate entry for key 'PRIMARY'' on query.

MySQL Replication 슬래이브 서버에서

show slave status 로 상태 확인시 위와 같은 에러가 있으면 더 이상 DB 데이터 싱크는 되지 않습니다.

아무튼 이런 경우에는 my.cnf 에 아래 옵션을 넣어주면 됩니다.

[mysqld]
server-id=2
slave-skip-errors=1062

1062 에러가 primary key 데이터 중복시 나는 에러입니다.

auto_increment 가 되어 있는데도 불구 하고 에러가 나는게 조금 이상하긴 하네요.

2017년 3월 15일 수요일

LSYNCD Error Terminating since out of inotify watches

LSYNCD Error Terminating since out of inotify watches



lsyncd 로그 파일에 아래와 같은 에러가 있다면 동기화 하려는 파일의 수가 많을 때 발생합니다.


Wed Mar 15 14:05:54 2017 Normal: --- TERM signal, fading ---
Wed Mar 15 14:05:56 2017 Error: Terminating since out of inotify watches.
Consider increasing /proc/sys/fs/inotify/max_user_watches


동기화 시키려는 파일이 많은 때는 위와 같은 에러가 발생합니다.

이럴때는 max_user_watches 수를 증가시켜 주면 됩니다.

먼저 얼마로 되어 있는지 확인해 보고 수치를 증가시켜 줍시다.

# cat /proc/sys/fs/inotify/max_user_watches
8192

# echo 65536 > /proc/sys/fs/inotify/max_user_watches


이제 lsyncd 를 재시작 하면 됩니다.

ssh-copy-id Pseudo-terminal will not be allocated because stdin is not a terminal

ssh-copy-id Pseudo-terminal will not be allocated because stdin is not a terminal



# ssh-copy-id root@192.168.1.2
Pseudo-terminal will not be allocated because stdin is not a terminal.
ssh: Could not resolve hostname umask 077; test -d ~/.ssh || mkdir ~/.ssh ; cat >> ~/.ssh/authorized_keys && (test -x /sbin/restorec: Name or service not known

위와 같이 복사가 안 될 때는 scp 명령어로 복사하여 주면 됩니다.

# scp ./.ssh/id_rsa.pub root@192.168.1.2:~/.ssh/authorized_keys

authorized_keys 에 다른 서버의 키 값이 있다면 복사가 아닌 cat 으로 덧붙어 주어야 합니다.

# cat ./.ssh/id_rsa.pub | ssh root@192.168.1.2 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"


2017년 3월 10일 금요일

LINUX fdisk error

LINUX fdisk error


Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 5: Input/output error.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

디스크 상태가 이상해서 파티션을 다시 잡을려고 하니 위와 같이 에러가 발생한다.

아무래도 디스크가 맛이 갔나보다.

2017년 3월 9일 목요일

MySQL omtimize table 중에 process 를 kill 하면

MySQL omtimize table 중에 process 를 kill 하면



테이블 파일이 깨집니다.


optimize table example_table;

이렇게 쿼리를 실행한 후에 시간이 너무 오래 걸려서

show processlist; 로 해당 ID 를 kill id값; 했더니 아래처럼 나오네요~

#144 - Table './example/example_table' is marked as crashed and last (automatic?) repair failed

2017년 3월 3일 금요일

MySQL 쿼리 실행시간 제한은 없는 듯 하다

MySQL 쿼리 실행시간 제한은 없는 듯 하다


잘 못 실행된 쿼리로 인해 DB 서버가 먹통이 되는 현상을 경험했다면,
응급 조치로는 show processlist 로 확인하고 해당 id 를 kill 해주는 방법이 있습니다.

php 와 같이 사용하는 경우에는 php 에서 실행시간을 제한(max_execution_time 설정값 또는 set_time_limit 함수이용)을 걸 수가 있지만, mysql 환경설정에는 아무리 구글링을 해봐도 찾지를 못하겠네요.

현재로써는 cron 을 이용해서 쉘스크립트로 프로세스를 체크해서 Time 이 일정 수치 이상된 프로세스 id 는 kill 을 해주도록 해주는 방법이 최선인 듯 합니다.

MariaDB [mysql]> show processlist;
+----+------+-----------+-------+---------+------+------------+-------------------+----------+
| Id | User | Host      | db    | Command | Time | State      | Info              | Progress |
+----+------+-----------+-------+---------+------+------------+-------------------+----------+
|  8 | root | localhost | mysql | Query   |    0 | NULL       | show processlist  |    0.000 |
| 15 | root | localhost | NULL  | Query   |    4 | User sleep | select sleep(300) |    0.000 |
+----+------+-----------+-------+---------+------+------------+-------------------+----------+
2 rows in set (0.00 sec)

MariaDB [mysql]> kill 15;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> show processlist;
+----+------+-----------+-------+---------+------+-------+------------------+----------+
| Id | User | Host      | db    | Command | Time | State | Info             | Progress |
+----+------+-----------+-------+---------+------+-------+------------------+----------+
|  8 | root | localhost | mysql | Query   |    0 | NULL  | show processlist |    0.000 |
+----+------+-----------+-------+---------+------+-------+------------------+----------+
1 row in set (0.00 sec)

MariaDB [mysql]>

2017년 2월 28일 화요일

MySQL log_warnings 값 설정

MySQL log_warnings 값 설정


아래 처럼 에러 로그가 너무 빈번히 발생한다면 log_warnings 변수의 값을 확인해서 변경해주면 됩니다.

170228 13:28:43 [Warning] Statement may not be safe to log in statement format. Statement: insert
170228 13:28:43 [Warning] Statement may not be safe to log in statement format. Statement: update
170228 13:28:43 [Warning] Statement may not be safe to log in statement format. Statement: insert
170228 13:28:52 [Warning] Statement may not be safe to log in statement format. Statement: insert
170228 13:28:52 [Warning] Statement may not be safe to log in statement format. Statement: update
170228 13:28:52 [Warning] Statement may not be safe to log in statement format. Statement: insert
170228 13:29:35 [Warning] Statement may not be safe to log in statement format. Statement: insert
170228 13:29:35 [Warning] Statement may not be safe to log in statement format. Statement: update
170228 13:29:35 [Warning] Statement may not be safe to log in statement format. Statement: insert

show variables like 'log_warnings';

set global log_warnings = 0;

2017년 2월 27일 월요일

Fatal error Class 'PHPExcel_Shared_Font' not found

Fatal error Class 'PHPExcel_Shared_Font' not found


PHPExcel 작업시 아래와 같은 에러가 발생하는 황당한 경우가 있습니다.

Fatal error:  Class 'PHPExcel_Shared_Font' not found in C:\AutoSet9\public_html\Classes\PHPExcel\Writer\Excel5\Worksheet.php on line 299


아무리 구글링을 해봐도 도무지 답이 없더군요~

결론은 PHPExcel 클래스 파일이 복사하면서 깨진 것인지 https://github.com/PHPOffice/PHPExcel/archive/1.8.zip 여기서 새로 다운로드 받아서 압축 풀고 테스트를 하니 정상적으로 되네요~

아무래도 구글 드라이브에서 작업 중인데 싱크가 끝나지 않은 상태에서 ftp 로 파일을 업로드해서 생긴 문제 같습니다.

2017년 2월 24일 금요일

AMD Ryzen specification

AMD Ryzen specification


AMD 라이젠이 드디어 출시가 되는군요~

출시일은 2017년 3월 2일 입니다.

카비레이크가 출시 되고 한달보름만에 라이젠 서밋 릿지가 모습을 나타냈네요~

가성비로 인텔의 독주를 막을 수 있을지 기대가 됩니다.

출시모델은 Ryzen 7 3종류만 먼저 출시 되었네요~

라이젠 3, 5도 빨리 출시되었으면 합니다. ( Ryzen 5 출시일 2017.04.11 )


AMD Ryzen CPU Cores/Threads Base Turbo L3 TDP
AMD Ryzen 7 1800X
8 / 16
3.6GHz
4.0GHz
16MB
95W
AMD Ryzen 7 1700X
8 / 16
3.4GHz
3.8GHz
16MB
95W
AMD Ryzen 7 1700
8 / 16
3.0GHz
3.7GHz
16MB
65W
AMD Ryzen 5 1600X
6 / 12
3.3GHz
3.7GHz
16MB
95W
AMD Ryzen 5 1600
6 / 12
16MB
65W
AMD Ryzen 5 1500
6 / 12
3.2GHz
3.5GHz
16MB
65W
AMD Ryzen 5 1400X
4 / 8
3.5GHz
3.9GHz
8MB
65W
AMD Ryzen 5 1400
4 / 8
8MB
65W
AMD Ryzen 5 1300
4 / 8
3.2GHz
3.5GHz
8MB
65W
AMD Ryzen 3 1200X
4 / 4
3.4GHz
3.8GHz
8MB
65W
AMD Ryzen 3 1200
4 / 4
8MB
65W
AMD Ryzen 3 1100
4 / 4
3.2GHz
3.5GHz
8MB
65W

1800X 의 경우 499달러인데 인텔 최상위 CPU의 절반 정도 가격입니다.

라인업이 Ryzen 3 하위 CPU 도 있을 듯 한데 아직까지 정보가 없는게 아쉽습니다.


2017년 2월 17일 금요일

CentOS 7.x Free SSL Certificate

CentOS 7.x Free SSL Certificate



# yum install mod_ssl letsencrypt

# systemctl stop httpd

# letsencrypt certonly --standalone -d www.example.com


Configration for Apache

# vi /etc/httpd/conf.d/www.example.com.conf
<VirtualHost www.example.com:443>
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/fullchain.pem
    ServerName www.example.com
    DocumentRoot /var/www/html
    ErrorLog logs/www.example.com_error_log
    CustomLog logs/www.example.com_access_log common
</VirtualHost>


reference

http://blog.ivps.kr/188

http://blog.ivps.kr/189

CentOS 7.x Apache Invalid command SSLEngine

CentOS 7.x Apache Invalid command SSLEngine


retsencrypt 로 인증서 발급후에 아파치 설정하고 에러 발생시 해결방법


[root@conoha-jp ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2017-02-17 08:43:27 JST; 12s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 21946 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 11721 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
  Process: 21945 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 21945 (code=exited, status=1/FAILURE)

Feb 17 08:43:26 conoha-jp systemd[1]: Starting The Apache HTTP Server...
Feb 17 08:43:27 conoha-jp httpd[21945]: AH00526: Syntax error on line 2 of /...:
Feb 17 08:43:27 conoha-jp httpd[21945]: Invalid command 'SSLEngine', perhaps...n
Feb 17 08:43:27 conoha-jp systemd[1]: httpd.service: main process exited, c...RE
Feb 17 08:43:27 conoha-jp kill[21946]: kill: cannot find process ""
Feb 17 08:43:27 conoha-jp systemd[1]: httpd.service: control process exited...=1
Feb 17 08:43:27 conoha-jp systemd[1]: Failed to start The Apache HTTP Server.
Feb 17 08:43:27 conoha-jp systemd[1]: Unit httpd.service entered failed state.
Feb 17 08:43:27 conoha-jp systemd[1]: httpd.service failed.
Hint: Some lines were ellipsized, use -l to show in full.




[root@conoha-jp ~]# yum install mod_ssl
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
 * base: ftp.iij.ad.jp
 * epel: ftp.jaist.ac.jp
 * epel-debuginfo: ftp.jaist.ac.jp
 * epel-source: ftp.jaist.ac.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package mod_ssl.x86_64 1:2.4.6-45.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package        Arch          Version                         Repository   Size
================================================================================
Installing:
 mod_ssl        x86_64        1:2.4.6-45.el7.centos           base        105 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 105 k
Installed size: 224 k
Is this ok [y/d/N]: y
Downloading packages:
mod_ssl-2.4.6-45.el7.centos.x86_64.rpm                     | 105 kB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:mod_ssl-2.4.6-45.el7.centos.x86_64                         1/1
  Verifying  : 1:mod_ssl-2.4.6-45.el7.centos.x86_64                         1/1

Installed:
  mod_ssl.x86_64 1:2.4.6-45.el7.centos

Complete!


systemctl restart httpd


SSL 인증서 무료 발급은 아래 링크를 참고하세요.