mysql replication

TIL 2018.07.09 11:18

mysql replication


master / slave 서버에 각각의 실행이 다르므로 주의할것!!

1. 설정 추가

my.cnf 에 추가 (master)
[mysqld]
server-id = 1
log-bin = mysql-bin

mysql 재시작
$ sudo /etc/init.d/mysql restart

my.cnf 에 추가 (slave)
[mysqld]
server-id = 2
log-bin = mysql-bin

mysql 재시작
$ sudo /etc/init.d/mysql restart




2. 계정 추가

master에 replication을 수행할 유저 추가
(master mysql)
mysql > GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.100.0/ 255.255.255.0' IDENTIFIED BY '비번';


2-1. 덤프 (필요할 경우에만)
!! 수행하려는 master가 이미 테이블 및 데이터가 수정이 되었다면 덤프를 통해 slave를 동기화를 해줘야 한다. (아니면 그동안의 동기화가 깨져 에러가 난다.)

master 덤프
(master 콘솔)
$ mysqldump -u root -p --all-databases > dump.db

slave 에 추가
(slave 콘솔)
$ mysql -u root -p < dump.db




3. slave에 마스터 정보 추가

먼저 master_log_file / master_log_pos 의 정보는 master에서 정보 획득
(master mysql)
mysql > show master status;


slave에 master 정보 추가
(slave mysql)
mysql > CHANGE MASTER TO MASTER_HOST='10.211.55.13',MASTER_USER='repl',MASTER_PASSWORD='비번', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 730 MASTER_PORT=3306, MASTER_CONNECT_RETRY=30;




4. 실행
slave replication 실행
(slave mysql)
mysql > start slave;

!! 에러 확인
(slave msyql)
mysql > show slave status;
last_error 칼럼을 통해서 에러를 확인한다.



'TIL' 카테고리의 다른 글

mysql replication  (0) 2018.07.09
mysql fulltext  (0) 2018.07.09
ubuntu 14.04 mysql install  (0) 2018.07.05
elasticsearch  (0) 2018.06.30
젠킨스  (0) 2018.06.27

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

mysql fulltext

TIL 2018.07.09 10:20

mysql 5.7 버전 이상일것!!



1. index 추가

ex) ALTER TABLE 테이블명 ADD FULLTEXT INDEX 인덱스명 (컬럼명);

mysql > ALTER TABLE AppPurchases ADD FULLTEXT INDEX idx_message (message);

2. 검색
ex) SELECT * FROM 테이블명
WHERE MATCH(컬럼명) AGAINST('검색어1 검색어2')

mysql> SELECT * FROM AppPurchases WHERE MATCH(message) AGAINST('축하해')

3. 두글자일 경우 my.cnf 수정
innodb_ft_min_token_size=2

ft_min_word_len=2



'TIL' 카테고리의 다른 글

mysql replication  (0) 2018.07.09
mysql fulltext  (0) 2018.07.09
ubuntu 14.04 mysql install  (0) 2018.07.05
elasticsearch  (0) 2018.06.30
젠킨스  (0) 2018.06.27

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

ubuntu 14.04 mysql install

TIL 2018.07.05 14:36

- 나의 경우 ubuntu 14.04에서 mysql 5.7.* 버전이 설치 되지 않았다.  apt-get 에서 mysql-server-5.7 패키지가 사라진것으로 보인다. (혹시 되시는분?)


$ sudo apt-get update

$ sudo apt-get install mysql-server

- 설치 (설치 중 root 암호 입력)


$ sudo mysql_secure_installation

- 보안 설정


$ sudo mysql_install_db

- 기본 디비 설치


$ mysql -u root -p

mysql> select version();

- mysql 버전 확인



* 외부 접근 허용

mysql> use mysql;

mysql> select host, user, password from user;

- 현재 접속 가능한 유저

1) 특정 IP 접근 허용 설정
mysql> grant all privileges on *.* to 'root'@'10.221.55.8' identified by 'root의 패스워드';

2) 특정 IP 대역 접근 허용 설정
mysql> grant all privileges on *.* to 'root'@'10.221.%' identified by 'root의 패스워드';

3) 모든 IP의 접근 허용 설정
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root의 패스워드';


mysql> select host, user, password from user;
mysql> flush privileges;

mysql> exit


sudo vi /etc/my.cnf (혹은 sudo vi /etc/mysql/my.cnf)
- 아래부분 주석처리
# bind-address = 127.0.0.1


$ sudo /etc/init.d/mysqld restart

- mysql 재시작


'TIL' 카테고리의 다른 글

mysql replication  (0) 2018.07.09
mysql fulltext  (0) 2018.07.09
ubuntu 14.04 mysql install  (0) 2018.07.05
elasticsearch  (0) 2018.06.30
젠킨스  (0) 2018.06.27

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

elasticsearch

TIL 2018.06.30 23:49



https://stackoverflow.com/questions/31031001/elasticsearch-over-mysql-search-performance


전문 검색은 mysql 5.7 버전부터 지원하나 elasticsearch 에 아직 비빌 정도는 아님

but elasticsearch의 경우 기본 메모리가 4GB이상 이여야 가능하므로( 이하에선 성능 저하 및 동작 불능 에러 )

결국 전문검색이 필요한 서비스라면 전문검색을 위한 DB서버가 따로 마련되어야 한다.

'TIL' 카테고리의 다른 글

mysql replication  (0) 2018.07.09
mysql fulltext  (0) 2018.07.09
ubuntu 14.04 mysql install  (0) 2018.07.05
elasticsearch  (0) 2018.06.30
젠킨스  (0) 2018.06.27

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

젠킨스

TIL 2018.06.27 22:49

젠킨스


- but aws ec2 에서는 sudo가 먹히지 않아 자동 배포에 막히는 부분이 있음.

         aws에서 지원하는 젠킨스 서비스를 이용해야 가능


1. 설치


ubuntu

https://www.fun25.co.kr/blog/jenkins-ubuntu-16-04-install/?category=004


centos

https://yaboong.github.io/jenkins/2018/04/29/run-jenkins-on-aws-ec2/


mac 


http://theeye.pe.kr/archives/2783



2. github 훅

https://yaboong.github.io/jenkins/2018/05/14/github-webhook-jenkins/



3.배포


-빌드

http://heowc.tistory.com/75?category=703317


http://www.leafcats.com/227


http://kingbbode.tistory.com/35


http://heowc.tistory.com/77



4. 슬랙

http://pjc0247.tistory.com/49




5.테스트 연동

mocha

http://blog.jeonghwan.net/mocha/


 api test

chai

https://scotch.io/tutorials/test-a-node-restful-api-with-mocha-and-chai



'TIL' 카테고리의 다른 글

mysql replication  (0) 2018.07.09
mysql fulltext  (0) 2018.07.09
ubuntu 14.04 mysql install  (0) 2018.07.05
elasticsearch  (0) 2018.06.30
젠킨스  (0) 2018.06.27

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret


var str = "FRANCE";

var re = new RegExp("[A-z]{2}", "ig");

for(var i=0; i<str.length; i++){
        var substring = str.substr(i, 2);
        console.log("re.test(substring)", substring, re.test(substring));
}


위의 소스를 돌려보면 아래와 같이 모두 true / false 가 번갈아 가면서 나온다.

re.test(substring) FR true
re.test(substring) RA false
re.test(substring) AN true
re.test(substring) NC false
re.test(substring) CE true
re.test(substring) E false

정규식이 두글자의 문자일때 true가 반환되어야 하지만 정상적인 경우에도 false가 나온다.

이는 regExp의 g 옵션때문인데, g는  글러벌 속성으로 마지막으로 통과한 정규표현식의 위치를 기억하고

다음번엔 해당 index부터 시작하게 된다.

위의 경우 첫번쨰  FR을 통과 했으므로 LastIndex = 1이 되고, 다음번 RA를 검사할시 LastIndex가 1이기 때문에 RA에서  A부터 검사하여 false이 리턴된다. 그리고 다시 LastIndex는 0으로 초기화된다.


이렇게 for문 안에서 반복적인 정규표현식을 사용할 경우엔 g옵션을 빼고 사용하거나,

혹은 LastIndex를 지속적으로 0으로 초기화를 해야 한다.

re.lastIndex = 0;


참조 : https://stackoverflow.com/questions/1520800/why-does-a-regexp-with-global-flag-give-wrong-results

'web > javascript' 카테고리의 다른 글

js regexp wrong results?  (0) 2018.05.03
overflow-x 된 DOM에서 마우스 휠로 좌우스크롤 움직이기  (0) 2016.06.29
javascript reduce  (0) 2016.06.10
javascrpt map  (0) 2016.06.09

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret





{
    position: fixed;
    top: 0;
    left: 50%;
    margin-left: 216px;
    overflow: auto;
    height: 100%;
}


position을 fixed로 할 시 반응형일 경우 옆의 개체와 일정한 간격을 유지하기 위해선 약간의 꼼수가 필요하다.

left 50%; 와 

margin-left 값을 해당 태그사이즈 / 2 + 간격사이즈 를 px로 주면 반응형에도 알맞게 떨어진다.




WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

php 서버 실행

web/PHP 2018.04.30 23:12


1. 일반 실행 


   $php artisan serve 


  내장 PHP 웹 서버를 8000 포트에 구동



2. 포트 지정 

    $php artisan serve --port:8080

   8080 포트로 실행 



3. host 지정 

    $ php artisan serve --host 192.168.0.4 --port 8080

   기본으로 localhost 로 실행하기 때문에 localhost 로 접근하지 않으면 접근 되지 않음. 

   지정한 ip로 실행하면 접근 가능 




WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret

오랜만에 라라벨을 실행시켜 보니 다음과 같은 에러가 난다. 


production.ERROR: exception 'ErrorException' with message 'file_get_contents(.env): failed to open stream: No such file or directory' in /Users/uiandwe/Downloads/profile/vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php:57
Stack trace:


해당 에러는 .env 파일이 없어서 나는 에러이다. (해당 파일에 라라벨 기본 설정 및 암호화 관련이 명시되어 있다. 기본 설정을 못 불러와서 나는 초기화 에러이다. )


1.  $php artisan key:generate




위의 명령어를 실행하고 처리되면 끝나지만 위와 같이 에러가 나면 파일 자체가 없는것이다. 


2. $vi .env


APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
APP_URL=http://localhost

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null


해당 파일을 만든후 저장한다. 


3. $php artisan key:generate

     Application key [base64:xadA$G!@$%fgkljasdfnAFSDGATZU9E=] set successfully.


다시 1번의 명령어를 실행하여 키를 생성하면 정상적으로 셋팅이되며 이제 라라벨을 실행할수 있다. 




WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret



$sudo apt-get install python3-pip


$sudo pip3 install jupyter


$jupyter notebook


'os > 리눅스' 카테고리의 다른 글

ubuntu jupyter 설치  (0) 2016.08.26
ubuntu 14.04 install ffmpeg  (0) 2015.06.30
linux sync time utc  (0) 2015.05.07
How do I kill all screens?  (0) 2014.10.21
screen cannot exec ...  (0) 2014.10.06
FTP 550: Permission Denied  (0) 2014.09.04

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret