본문 바로가기
Programming/C#

MYSQL C# 연동1

by ahhang0k 2021. 5. 28.

MYSQL, C# 연동

 

1.  MYSQL Connector  설치

2. 인바운드 규칙 생성(포트3306 열기)

3. ipconfig로 ip확인

4. 사용자 생성 및 권한 설정

 

1.  MYSQL Connector  설치

MYSQL installer에 들어간다.

제일 최신버전의 Connector/NET을 오른쪽 화살표를 클릭하여 넣어준 후에 Next를 눌러 계속 설치를 완료한다.

로컬디스크 C의 programfiles x86 에 아래 경로에 들어가 MySql.Data.dll이 설치 되어있는지 확인한다.

 

 

2. 방화벽을 열어주는 인바운드 규칙 생성(포트3306 열기)

고급설정으로 간다.

인바운드 규칙 클릭후 새규칙 클릭 그리고 포트를 선택하고 다음 MYSQL포트번호 3306입력을 해줍니다.

이름이 우리가 설정한 Mysql이 맞나 확인 합니다.

 

3. ipconfig로 ip확인

cmd창에 ipconfig를 친다.

나의 아이피 주소는 192.168.100.56 (아이피주소는 매번 변경된다) - 내가 갈려고 하는 아이피번호를 확인할떄 사용하며 보통 내피씨에 접속시에는 127.0.0.1

 

4. 사용자 생성권한

1) root권한말고  create database test01 default character set utf8 collate utf8_general_ci; 로 저장되는 튜플을 한글로 입력할 수 있게 해주는 데이타 베이스를 하나 만듭니다.

2) show databases;를 하여 mysql 데이터 베이스를 확인한다음

use mysql;로 데이터베이스를 바꾸어 줍니다.

그리고 select host, user, authentication_string from user; 로 mysql의 권한을 살펴봅니다.

3) create user testuser@'%' identified by '1234'; 유저를 만들고 비밀번호는1234로 만들고 확인

비밀번호는 암호화 되어있어서 잘 안보임

4) grant all privileges on test01.* to testuser@'%'; 이제 test01은 권한을 부여해 줍니다. all은 모든 권한이고 select, delete등 다양하게 권한 부여 가능 on명령어를 쓰고 test01이라는 데이터베이스 테이블에 *로 모든 테이블 다 접근 가능하게 to명령어로 testuser에게

 

* ERROR 1410 (42000): You are not allowed to create a user with GRANT

root로 접속해서 권한을 부여하는데도 위와 같은 오류가 발생하였다.

 

CREATE USER 'root'@'%' IDENTIFIED BY 'root';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

 

를 실행한 후에 다시 사용자에게 권한을 부여하니 된다.

 

근데 '%'가 외부권한을 허용한다는건데, root로 외부권한을 허용하는 건 상당히 위험할 수 있다.

그러니 datagrip에 다 연결하고 나서, 혹은 개인프로젝트를 빨리 끝내버리고

 

mysql> revoke all on *.* from root@'%';
mysql> flush privileges;

 

이걸로 외부권한을 없애자

 

끝!

 

testuser에 권한을 확인

5) 권한 부여를  적용시킵니다. 그리고 마지막으로 exit로 나옵니다.

 

6) 확인을 위해 testuser권한으로 mysql에 접속을 시도합니다.

mysql -u testuser -p1234

※ localhost는 내 pc에서만 접근가능 나만 쓰기 %는 내 아이피주소 알고하면 접근가능하게 해주는 것

 

 

C#에 MYSQL 연동

1) 참조추가에서 확장을 선택하고 Mysql.Data을 체크해주고 참조에 화살표를 내려 잘들어가 있나 확인하여 줍니다.

2) form1.cs의 우클릭으로 코드보기를 하고

using MySql.Data;

using MySql.Data.MySqlClient;

두 줄을 써준다.

3) 그리고 폼디자인을 하고 

4) form1.cs에 아래 구문을 적어주어 DB와 연결하여 줍니다.

연결 버튼과 연결 해제버튼을 클릭하여 아래의 코드를 넣어줍니다. 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;

namespace WindowsFormsApp5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        MySqlConnection conn;
        MySqlCommand cmd; //sql구문을 실행시켜주는 객체
        
		//연결버튼
        private void button2_Click(object sender, EventArgs e) 
        {
            //교량 구축하기 + 트럭준비
            String connStr = "Server=192.168.100.56;Port=3306;Uid=testuser;Pwd=1234;Database=test01;CHARSET=UTF8";
            conn = new MySqlConnection(connStr);
            conn.Open();
            cmd = new MySqlCommand("", conn);
            MessageBox.Show("연결성공");
        }

		//연결해제버튼
        private void button3_Click(object sender, EventArgs e)
        {
            conn.Close(); //해제시 반드시 닫아주기
            MessageBox.Show("연결해제");
        }
    }
}

5) controll f5를 하여 DB연결과 연결해제를 확인하여 줍니다.

댓글