Skip to content

Commit 10f32c0

Browse files
author
seungh0
committed
feat: migrate from MariaDB to MySQL
- disable slave connection
1 parent 185a3b5 commit 10f32c0

5 files changed

Lines changed: 82 additions & 53 deletions

File tree

docker/local/docker-compose.yml

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
11
services:
2-
mariadb-master:
3-
container_name: community-mariadb-local
4-
image: mariadb:11.4
2+
threedollar-mysql:
3+
container_name: community-mysql-local
4+
image: mysql:8.4
55
ports:
6-
- '23306:3306'
6+
- "23306:3306"
77
volumes:
8-
- community-local-mariadb-master-volume:/var/lib/mysql
8+
- community-local-mysql:/var/lib/mysql
99
restart: unless-stopped
1010
environment:
11-
- MARIADB_DATABASE=community_local
12-
- MARIADB_ROOT_PASSWORD=community
11+
- MYSQL_DATABASE=community_local
12+
- MYSQL_ROOT_PASSWORD=community
13+
command:
14+
--character-set-server=utf8mb4
15+
--collation-server=utf8mb4_0900_ai_ci
1316
networks:
1417
- community-local-network
18+
healthcheck:
19+
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
20+
interval: 5s
21+
timeout: 5s
22+
retries: 5
23+
start_period: 10s
24+
stop_grace_period: 3s
1525

1626
threedollar-redis:
1727
image: redis:7.0-alpine
@@ -21,14 +31,21 @@ services:
2131
- '26379:6379'
2232
restart: unless-stopped
2333
volumes:
24-
- community-local-redis-volume:/data
34+
- community-local-redis:/data
2535
networks:
2636
- community-local-network
37+
healthcheck:
38+
test: [ "CMD", "redis-cli", "ping" ]
39+
interval: 5s
40+
timeout: 5s
41+
retries: 3
42+
start_period: 5s
43+
stop_grace_period: 3s
2744

2845
volumes:
29-
community-local-mariadb-master-volume:
46+
community-local-mysql:
3047
driver: local
31-
community-local-redis-volume:
48+
community-local-redis:
3249
driver: local
3350

3451
networks:

docker/test/docker-compose.yml

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
services:
2-
threedollar-mariadb-master:
3-
container_name: community-mariadb-test
4-
image: mariadb:11.4
2+
threedollar-mysql:
3+
container_name: community-mysql-test
4+
image: mysql:8.4
55
ports:
66
- '33306:3306'
77
restart: unless-stopped
88
environment:
9-
- MARIADB_DATABASE=community_test
10-
- MARIADB_ROOT_PASSWORD=community
9+
- MYSQL_DATABASE=community_test
10+
- MYSQL_ROOT_PASSWORD=community
11+
command:
12+
--character-set-server=utf8mb4
13+
--collation-server=utf8mb4_0900_ai_ci
1114
networks:
1215
- community-test-network
16+
healthcheck:
17+
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
18+
interval: 5s
19+
timeout: 5s
20+
retries: 5
21+
start_period: 10s
22+
stop_grace_period: 3s
1323

1424
threedollar-redis:
1525
image: redis:7.0-alpine
@@ -20,6 +30,13 @@ services:
2030
restart: unless-stopped
2131
networks:
2232
- community-test-network
33+
healthcheck:
34+
test: [ "CMD", "redis-cli", "ping" ]
35+
interval: 5s
36+
timeout: 5s
37+
retries: 3
38+
start_period: 5s
39+
stop_grace_period: 3s
2340

2441
networks:
2542
community-test-network:

threedollar-core/threedollar-domain/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dependencies {
66
api("org.springframework.boot:spring-boot-starter-data-jpa")
77

88
// MariaDB
9-
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
9+
runtimeOnly("com.mysql:mysql-connector-j")
1010

1111
// H2
1212
runtimeOnly 'com.h2database:h2'

threedollar-core/threedollar-domain/src/main/java/com/threedollar/config/data/DataSourceConfiguration.java

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
package com.threedollar.config.data;
22

33
import com.zaxxer.hikari.HikariDataSource;
4-
5-
import java.util.HashMap;
6-
import java.util.Map;
7-
import javax.sql.DataSource;
8-
94
import org.springframework.beans.factory.annotation.Qualifier;
105
import org.springframework.boot.context.properties.ConfigurationProperties;
116
import org.springframework.boot.jdbc.DataSourceBuilder;
@@ -14,6 +9,10 @@
149
import org.springframework.context.annotation.Primary;
1510
import org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy;
1611

12+
import javax.sql.DataSource;
13+
import java.util.HashMap;
14+
import java.util.Map;
15+
1716
@Configuration
1817
public class DataSourceConfiguration {
1918

@@ -23,28 +22,25 @@ public class DataSourceConfiguration {
2322
@Bean
2423
@ConfigurationProperties(prefix = "spring.datasource.master")
2524
public DataSource masterDataSource() {
26-
return DataSourceBuilder.create()
27-
.type(HikariDataSource.class)
28-
.build();
25+
return DataSourceBuilder.create().type(HikariDataSource.class).build();
2926
}
3027

31-
@Bean
32-
@ConfigurationProperties(prefix = "spring.datasource.slave")
33-
public DataSource slaDataSource() {
34-
return DataSourceBuilder.create()
35-
.type(HikariDataSource.class)
36-
.build();
37-
}
28+
// @Bean
29+
// @ConfigurationProperties(prefix = "spring.datasource.slave")
30+
// public DataSource slaDataSource() {
31+
// return DataSourceBuilder.create()
32+
// .type(HikariDataSource.class)
33+
// .build();
34+
// }
3835

3936
@Bean
40-
public DataSource routingDataSource(@Qualifier(MASTER_DATASOURCE_NAME) DataSource masterDataSource,
41-
@Qualifier(SLAVE_DATASOURCE_NAME) DataSource slaveDataSource) {
37+
public DataSource routingDataSource(@Qualifier(MASTER_DATASOURCE_NAME) DataSource masterDataSource) {
4238

4339
ReplicationRoutingDataSource routingDataSource = new ReplicationRoutingDataSource();
4440

4541
Map<Object, Object> dataSourceMap = new HashMap<>();
4642
dataSourceMap.put("master", masterDataSource);
47-
dataSourceMap.put("slave", slaveDataSource);
43+
// dataSourceMap.put("slave", slaveDataSource);
4844

4945
routingDataSource.setTargetDataSources(dataSourceMap);
5046
routingDataSource.setDefaultTargetDataSource(masterDataSource);

threedollar-core/threedollar-domain/src/main/resources/application-core.yml

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ spring:
66
hibernate:
77
default_batch_fetch_size: 300
88
query.in_clause_parameter_padding: true
9-
dialect: org.hibernate.dialect.MariaDBDialect
9+
dialect: org.hibernate.dialect.MySQL8Dialect
1010
open-in-view: false
1111
datasource:
12-
driver-class-name: org.mariadb.jdbc.Driver
12+
driver-class-name: com.mysql.cj.jdbc.Driver
1313
hikari:
1414
connection-timeout: 5000
15-
driver-class-name: org.mariadb.jdbc.Driver
1615
data:
1716
redis:
1817
timeout: 3000
@@ -39,13 +38,13 @@ spring:
3938
use_sql_comments: true
4039
datasource:
4140
master:
42-
jdbc-url: jdbc:mariadb://localhost:23306/community_local
41+
jdbc-url: jdbc:mysql://localhost:23306/community_local
4342
username: root
4443
password: community
4544
hikari:
4645
maximum-pool-size: 10
4746
slave:
48-
jdbc-url: jdbc:mariadb://localhost:23306/community_local
47+
jdbc-url: jdbc:mysql://localhost:23306/community_local
4948
username: root
5049
password: community
5150
hikari:
@@ -71,20 +70,20 @@ spring:
7170
format_sql: true
7271
use_sql_comments: true
7372
datasource:
74-
master:
75-
jdbc-url: jdbc:mariadb://localhost:33306/community_test
76-
username: root
77-
password: community
78-
driver-class-name: org.mariadb.jdbc.Driver
79-
hikari:
80-
maximum-pool-size: 10
81-
slave:
82-
jdbc-url: jdbc:mariadb://localhost:33306/community_test
83-
username: root
84-
password: community
85-
driver-class-name: org.mariadb.jdbc.Driver
86-
hikari:
87-
maximum-pool-size: 10
73+
master:
74+
jdbc-url: jdbc:mysql://localhost:33306/community_test
75+
username: root
76+
password: community
77+
driver-class-name: com.mysql.cj.jdbc.Driver
78+
hikari:
79+
maximum-pool-size: 10
80+
slave:
81+
jdbc-url: jdbc:mysql://localhost:33306/community_test
82+
username: root
83+
password: community
84+
driver-class-name: com.mysql.cj.jdbc.Driver
85+
hikari:
86+
maximum-pool-size: 10
8887
data:
8988
redis:
9089
host: localhost

0 commit comments

Comments
 (0)