카페24 is not allowed to connect to this mariadb server

카페24에 웹 호스팅 사용시 db를 외부프로그램으로 접속하여 세팅해야할 경우가 있어요. 

주소를 넣고 이런 메세지를 접하면 당혹스러워요.. 전에 세팅한방법이 기억이 아날때두 있구요.

그래서 정리 해 놓아요. 

카페24 메인홈

나의서비스관리를 눌러서 호스팅서버를 선택해요. 

그럼 서비스 사용현황이 보이는데 아래로 내리면 MYSQL 외부 IP 접근설정이라고 있어요. 

MYSQL 외부 IP접근설정

설정하기를 눌러 아이피를 등록해줘요.

이상입니다.

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

spring mvc homepage 스프링 홈페이지 만들기 3

mysql을 설치해주세요. 헐.. 전 mariadb를 설치되어 있네요. 

mariadb10.4

음 mariadb로 설치할께요 mysql과 동일하게 접속이 되니 그냥 진행할께요. 

db를 하나 만들어요. home_page로 만들었어요. 
schemas 잘만들어지네요.

mysql workbench 프로그램으로 생성이 되니 mysql홈페이지에서 다운받아 설치하시면되요. 

SELECT HOST, USER, PASSWORD FROM USER;

CREATE USER 'eunhopapa'@'%' IDENTIFIED BY 'eunho20190000';
SELECT HOST, USER, PASSWORD FROM USER;

db를 생성해요. mariadb도 버전이 오르면서 툴에서 생성하는게 잘 안되어서 명령어로 생성해요. 

권한등을 설정할꺼에요. 
dba설정

전 모든권한을 주었어요.

이렇게 db생성이 되었습니다. 

그리고나서 toad for mysql 설치합니다. 

접속 설정

이렇게 해서 db에 접속을 해요. 잘되네요. 이제 스프링에 세팅해줄께요. 

/homepage/src/main/webapp/WEB-INF/spring/root-context.xml
/homepage/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

두파일을 수정해요.

엑셀다운로드 mybitis log 인터셉터등으로 다양한 파일을 생성해야해요. 내용은 없고 추가해주도록할게요.

interceptor를 추가해줄께요. 하나는 로그인 관련 처리할것이고 하나는 메타태그 관련정보를 다를거에요. 

AuthInterceptor.java
0.00MB
MetaInterceptor.java
0.00MB

src->main->resources 안에 아래의 파일을 추가수정해요. 

log4j.xml
0.00MB
log4jdbc.log4j2.properties
0.00MB
mybatis-config.xml
0.00MB

그리고 쿼리 관련 xml도 만들어줘요. 

BasicMapper.xml
0.00MB

WIN-INF 에다가 views.xml 파일을 복사해줘요. 

views.xml
0.00MB

그럼 실행을 해보면 별로 변한건 없이 db연결만 되었어요. 테스트는 따로 안할께요. 

그리고 jsp 파일에 <div class="container"> 부분을 모두 <div class="container-fluid"> 이렇게 변경을 해주세요

전 화면에 꽉찬 페이지를 만들고 싶어서 그래요. 

홈페이지

꽉 찬 페이지가 나오는것을 확인할수 있어요. <div class="col-lg-6"> 을 <div class="col-lg-12"> 변경해야하는것도 잊지 마세요.

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

c# mysql maria db connect 연동

nuget

프로젝트를 생성한후 mysql.data를 설치해야해요.

참조로 추가해줄수 있고 nuget으로 설치가 가능해요. nuget에서 mysql검색하면 나오는데 버전은 상관없는것 같아요. 최신버전을 설치해줘요. 

설치후 mysql클래스 파일을 하나 생성해요. 

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace find_chart
{
    class Mysql_util
    {
        private static Mysql_util instance = new Mysql_util();
        public static Mysql_util Instance
        {
            get
            {
                return instance;
            }
        }
        String connectionString;
        public Mysql_util()
        {
            String database = "연동db";
            String server = "localhost";
            String user = "내아디";
            String password = "코로나19";
            connectionString = "server="+ server 
                            + ";user="+ user 
                            + ";database="+ database 
                            + ";password="+ password;
            
        }

        public Boolean DB_INSERT(String sql)
        {

            var connection = new MySqlConnection(connectionString);
            Boolean return_value=false;
            try
            {
                Console.WriteLine("MySQL DB 연결 중...");
                connection.Open();
                MySqlCommand mySqlCommand = new MySqlCommand(sql, connection);
                if(mySqlCommand.ExecuteNonQuery() == 1)
                {
                    return_value = true;
                }                
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            connection.Close();
            return return_value;
        }
        public DataTable DB_SELECT(String sql)
        {
            var connection = new MySqlConnection(connectionString);
            Console.WriteLine("connectionString : " + connectionString);
            var mySqlDataTable = new DataTable();
            try
            {
                Console.WriteLine("SQL : " + sql);
                Console.WriteLine("MySQL DB 연결 중...");
                connection.Open();
                MySqlCommand mySqlCommand = new MySqlCommand(sql, connection);
                MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();
                mySqlDataTable.Load(mySqlDataReader);

                
                StringBuilder output = new StringBuilder();
                foreach (DataColumn col in mySqlDataTable.Columns)
                {
                    output.AppendFormat("{0} ", col);
                }
                output.AppendLine();
                foreach (DataRow page in mySqlDataTable.Rows)
                {
                    foreach (DataColumn col in mySqlDataTable.Columns)
                    {
                        output.AppendFormat("{0} ", page[col]);
                    }
                    output.AppendLine();

                }
                Console.WriteLine(output.ToString());

                mySqlDataReader.Close();
            }
            catch (Exception ex)
            {   
                Console.WriteLine(ex.ToString());
            }
            connection.Close();
            return mySqlDataTable;
        }
    }
}

 

mysql_util 이라고 생성했어요. SELECT문과 UPDATE문을 사용할수 있게 만들었어요. 

사용할 폼에서 선언해요. 

Mysql_util mysql_util = Mysql_util.Instance; 

그리고 한번 테스트를 해보았어요. 폼에서 특정 검색언어를 받아서 조회해서 화면에 출력하는것이에요. 

쿼리는 이렇게 작성해서 테스트 해보았어요. 

 String sql = "SELECT * FROM tb_member WHERE uid = '" + input_text+"'";

var mySqlDataTable = mysql_util.DB_SELECT(sql);
StringBuilder output = new StringBuilder();
            String v_name = "손님";
            foreach (DataRow page in mySqlDataTable.Rows)
            {
                foreach (DataColumn col in mySqlDataTable.Columns)
                {
                    output.AppendFormat("{0} ", page[col]);
                }
                //DataColumn col = new DataColumn("uname");
                v_name = page["uname"].ToString();
                output.AppendLine();

            }
            Console.WriteLine(output.ToString());

출력물

출력이 잘되고 있네요. 

 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,

스프링부트 2.0 에서  멀티 db를 사용하고 mybaits와 mysql 을 사용해보자.. 

/main/resources/application.properties

파일을 열고 환경 설정을 한다. 

#db순서
spring.first.datasource.type=org.apache.tomcat.jdbc.pool.DataSource 
spring.first.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.first.datasource.jdbc-url=db주소
spring.first.datasource.username=아디
spring.first.datasource.password=패스워드
spring.first.datasource.connectionProperties=useSSL=false;useUnicode=yes;characterEncoding=UTF-8;serverTimezone=UTC 

#db순서
spring.second.datasource.type=org.apache.tomcat.jdbc.pool.DataSource 
spring.second.datasource.driverClassName=com.mysql.jdbc.Driver
spring.second.datasource.jdbc-url=db주소
spring.second.datasource.username=아디.
spring.second.datasource.password=패스워드.
spring.second.datasource.connectionProperties=useSSL=false;useUnicode=yes;characterEncoding=UTF-8;serverTimezone=UTC 

JSP 페이지 사용을 위해서

#JSP를 사용하겠다.
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

문자를 UTF-8사용 설정

spring.http.encoding.charset=UTF-8 

첫번째 DB파일 설정

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FirstDataSourceConfig {
@Bean 
@ConfigurationProperties(prefix = "spring.first.datasource") 
public DataSource firstDataSource() 
{
return DataSourceBuilder.create().build(); 

@Bean public SqlSessionFactory firstSqlSessionFactory(DataSource firstDataSource, ApplicationContext applicationContext) throws Exception 
{
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); 
sqlSessionFactoryBean.setDataSource(firstDataSource); 
sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:mapper/first/*.xml")); 
return sqlSessionFactoryBean.getObject(); 
}
@Bean public 
SqlSessionTemplate firstSqlSessionTemplate(SqlSessionFactory firstSqlSessionFactory) throws Exception 
{
return new SqlSessionTemplate(firstSqlSessionFactory); 
}

}

 

2번째 DB파일 설정

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SecondDataSourceConfig {
@Bean 
@ConfigurationProperties(prefix = "spring.second.datasource") 
public DataSource secondDataSource() 
{
return DataSourceBuilder.create().build(); 

@Bean public SqlSessionFactory secondSqlSessionFactory(DataSource secondDataSource, ApplicationContext applicationContext) throws Exception 
{
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); 
sqlSessionFactoryBean.setDataSource(secondDataSource); 
sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:mapper/second/*.xml")); 
return sqlSessionFactoryBean.getObject(); 
}
@Bean public 
SqlSessionTemplate secondSqlSessionTemplate(SqlSessionFactory secondSqlSessionFactory) throws Exception 
{
return new SqlSessionTemplate(secondSqlSessionFactory); 
}

}

SQL파일은 여기에 위치한다. 

JSP파일은 여기에 위치한다. 

JSP경로

서비스를 만들고

DAO역시 만들어준다.

컨트롤러 뷰 화면 입니다. 

정리완료... 

블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,