제품 동향




mysql -P <포트 번호> -h <IP 주소> -u <사용자 이름> -p<비밀번호> --ssl-ca<ca 인증서>
$conn = mysqli_init();mysqli_ssl_set($conn,NULL,NULL, "<다운로드된 인증서 경로>", NULL, NULL);mysqli_real_connect($conn, '<데이터베이스 액세스 주소>', '<데이터베이스 액세스 사용자 이름>', '<데이터베이스 액세스 비밀번호>', '<액세스할 지정된 데이터베이스>', <액세스 포트>, MYSQLI_CLIENT_SSL);if (mysqli_connect_errno($conn)) {die('Failed to connect to MySQL: '.mysqli_connect_error());}
$options = array(PDO::MYSQL_ATTR_SSL_CA => '<다운로드된 인증서의 경로>');$db = new PDO('mysql:host=<데이터베이스 액세스 주소>;port=<액세스 포트>;dbname=<액세스할 지정된 데이터베이스>', '<데이터베이스 액세스 사용자 이름>', '<데이터베이스 액세스 비밀번호>', $options);
# generate truststore and keystore in codeString importCert = " -import "+" -alias mysqlServerCACert "+" -file " + ssl_ca +" -keystore truststore "+" -trustcacerts " +" -storepass password -noprompt ";String genKey = " -genkey -keyalg rsa " +" -alias mysqlClientCertificate -keystore keystore " +" -storepass password123 -keypass password " +" -dname CN=MS ";sun.security.tools.keytool.Main.main(importCert.trim().split("\\\\s+"));sun.security.tools.keytool.Main.main(genKey.trim().split("\\\\s+"));# use the generated keystore and truststoreSystem.setProperty("javax.net.ssl.keyStore","<다운로드한 인증서의 경로>");System.setProperty("javax.net.ssl.keyStorePassword","tencentdb");System.setProperty("javax.net.ssl.trustStore","<다운로드된 인증서의 경로>");System.setProperty("javax.net.ssl.trustStorePassword","tencentdb");url = String.format("jdbc:mysql://%s/%s?serverTimezone=UTC&useSSL=true", '<데이터베이스 액세스 주소>', '<액세스할 지정된 데이터베이스>');properties.setProperty("user", '<데이터베이스 액세스 사용자 이름>');properties.setProperty("password", '<데이터베이스 액세스 비밀번호>');conn = DriverManager.getConnection(url, properties);
var builder = new MySqlConnectionStringBuilder{Server = "<데이터베이스 액세스 주소>",UserID = "<데이터베이스 액세스 사용자 이름>",Password = "<데이터베이스 액세스 비밀번호>",Database = "<액세스할 지정된 데이터베이스>",SslMode = MySqlSslMode.VerifyCA,SslCa = "<다운로드된 인증서>",};using (var connection = new MySqlConnection(builder.ConnectionString)){connection.Open();}
try:conn = mysql.connector.connect(user='<데이터베이스 액세스 사용자 이름>',password='<데이터베이스 액세스 비밀번호>',database='<액세스할 지정된 데이터베이스>',host='<데이터베이스 액세스 주소>',ssl_ca='<다운로드한 인증서 경로>')except mysql.connector.Error as err:print(err)
conn = pymysql.connect(user='<데이터베이스 액세스 사용자 이름>',password='<데이터베이스 액세스 비밀번호>',database='<액세스할 지정된 데이터베이스>',host='<데이터베이스 액세스 주소>',ssl={'ca': '<다운로드한 인증서 경로>'})
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': '<액세스할 지정된 데이터베이스>','USER': '<데이터베이스 액세스 사용자 이름>','PASSWORD': '<데이터베이스 액세스 비밀번호>','HOST': '<데이터베이스 액세스 주소>','PORT': '<액세스 포트>','OPTIONS': {'ssl': {'ca': '<다운로드한 인증서의 경로>'}}}}
var fs = require('fs');var mysql = require('mysql');const serverCa = [fs.readFileSync("<다운로드된 인증서의 경로>", "utf8")];var conn=mysql.createConnection({host:"<데이터베이스 액세스 주소>",user:"<데이터베이스 액세스 사용자 이름>",password:"<데이터베이스 액세스 비밀번호>",database:"<액세스할 지정된 데이터베이스>",port:<액세스 포트>,ssl: {rejectUnauthorized: true,ca: serverCa}});conn.connect(function(err) {if (err) throw err;});
rootCertPool := x509.NewCertPool()pem, _ := ioutil.ReadFile("<다운로드된 인증서의 경로>")if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {log.Fatal("Failed to append PEM.")}mysql.RegisterTLSConfig("custom", &tls.Config{RootCAs: rootCertPool})var connectionString stringconnectionString = fmt.Sprintf("%s:%s@tcp(%s:<액세스 포트>)/%s?allowNativePasswords=true&tls=custom","<데이터베이스 액세스 사용자 이름>" , "<데이터베이스 액세스 비밀번호>", "<데이터베이스 액세스 주소>", '<액세스할 지정된 데이터베이스>')db, _ := sql.Open("mysql", connectionString)
client = Mysql2::Client.new(:host => '<데이터베이스 액세스 주소>',:username => '<데이터베이스 액세스 사용자 이름>',:password => '<데이터베이스 액세스 비밀번호>',:database => '<액세스할 지정된 데이터베이스>',:sslca => '<다운로드된 인증서의 경로>')
피드백