Amazon Linux AMI 에 설치

# wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
# yum localinstall mysql57-community-release-el6-11.noarch.rpm
# yum remove mysql55 mysql55-common mysql55-libs mysql55-server
# yum install mysql-community-server
# service mysqld restart
# mysql_upgrade -p

Amazon Linux Ami 에 설치환경

Apache 2.4.33

[root@ip-172-31-10-31 html]# httpd -V
Server version: Apache/2.4.33 (Amazon)
Server built:   May 23 2018 19:02:39
Server's Module Magic Number: 20120211:76
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

MYSQL 5.7.22

[root@ip-172-31-10-31 html]# mysql -V
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

PHP 7.0.30

[root@ip-172-31-10-31 html]# php -v
PHP 7.0.30 (cli) (built: May 10 2018 17:39:13) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.30, Copyright (c) 1999-2017, by Zend Technologies

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

CentOS7 | vsftpd 설치 오류  (0) 2018.11.19
firstmall plus 설치하기  (0) 2018.07.27
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18
블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요

웹상에서 계속 데이터를 받아와서 DB에 업로드를 하는데 중복된 값이 나오면 이를 무시하고 덮어씌울 수가 있습니다. 이를 이용하면 간단한 insert를 하기에 편합니다.

INSERT IGNORE

INSERT IGNORE into 테이블명 values ()

이렇게 하면 에러 없이 덮어씌여 버립니다.

ON DUPLICATE UPDATE

중복되는 값이 존재하면 UPDATE 하는 방법도 있다.

insert into DB명
    VALUES (?,?,?,?,?)
    ON DUPLICATE KEY
    UPDATE CATEGORY=?, HIT=?

만약에 중복값이 존재하면 CATEGORY, HIT 값을 업데이트하라는 명령어 입니다.

REPLACE INTO

REPLACE INTO DB명
    VALUES (?,?,?,?)

기존에 있던 키는 지워지고 새로운 키가 등록이 된다.
AUTO_INCREMENT 를 기본으로 등록하고 있다면, 기존에 있는 번호가 사라지고 새로운 번호로 등록되는 것을 확인 할 수 있다.

블로그 이미지

부들잎

안녕하세요

Tag MariaDB, mysql

댓글을 달아 주세요

mysql, mariadb 를 사용하려고 하는데 아래와 같은 에러가 나왔을 때에 해결하는 방법

Error: Access denied; you need the RELOAD privilege for this operation

GRANT RELOAD ON *.* TO 'your_user'@'localhost';
블로그 이미지

부들잎

안녕하세요

Tag mysql, sql

댓글을 달아 주세요

개발환경은 다른 곳에 라즈베리파이를 놓고, 다시 다른 곳에서 golang을 통해서 접속을 하려고 합니다.

모든 초반 작업은 root 계정에서 합니다.

 $ mysql -u root -p

DB를 생성

MariaDB [(none)]> CREATE DATABASE test;
MariaDB [(none)]> flush privileges;

mysql 외부 접속을 위한 아이디 생성

를 통해 관리자 아이디로 mysql(mariaDB)에 접속을 하고, 계정을 생성합니다.

내부 접속용 아이디

MariaDB [(none)]> create user ‘이름’@‘localhost’ identified by ‘비밀번호’;
MariaDB [(none)]> flush privileges;

localhost 가 들어가 있으면 내부접속만 허용하는 옵션입니다.

외부 접속용 아이디

MariaDB [(none)]> create user '이름'@'%' identified by '비밀번호'
MariaDB [(none)]> flush privileges;

% 이 들어가면 모든 아이피의 접속을 허용한다는 뜻입니다.
특정 IP에 권한을 주려면 ‘123.123.123.123’ 과 같은 권한을 추가하면 됩니다.

DB 계정에 권한설정

grant all privileges on 디비명.* to 이름@'%' identified by ‘비밀번호';
MariaDB [(none)]> flush privileges;

mysql 설정하기

$sudo vi /etc/mysql/my.cnf

bind-address = 127.0.0.1설정의 맨 앞에 #을 넣어서 주석처리 합니다.

raspberry 에 mysql 포트 열기

mysql 기본포트는 3306를 사용하고 있습니다.
3306 포트를 열어줍니다.

$ iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
$ iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
$ iptables-save

golang 소스

go get github.com/go-sql-driver/mysq;

를 통해서 소스 mysql 접속 소스를 다운받습니다. ($GOPATH) 폴더에 자동으로 설치가 됩니다.

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "아이디:비밀번호@tcp(접속주소:포트)/디비명")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    var version string
    db.QueryRow("SELECT VERSION()").Scan(&version)
    fmt.Println("Connected to:", version)
}

sql.Open(“mysql”, “아이디:비밀번호@tcp(접속주소:포트)/디비명”)
포트번호까지 전부 적어줘야 합니다.

블로그 이미지

부들잎

안녕하세요

댓글을 달아 주세요