Skip to content

Commit cae8a93

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

5 files changed

Lines changed: 84 additions & 53 deletions

File tree

docker/local/docker-compose.yml

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
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+
--lower_case_table_names=1
15+
--character-set-server=utf8mb4
16+
--collation-server=utf8mb4_general_ci
1317
networks:
1418
- community-local-network
19+
healthcheck:
20+
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
21+
interval: 5s
22+
timeout: 5s
23+
retries: 5
24+
start_period: 10s
25+
stop_grace_period: 3s
1526

1627
threedollar-redis:
1728
image: redis:7.0-alpine
@@ -21,14 +32,21 @@ services:
2132
- '26379:6379'
2233
restart: unless-stopped
2334
volumes:
24-
- community-local-redis-volume:/data
35+
- community-local-redis:/data
2536
networks:
2637
- community-local-network
38+
healthcheck:
39+
test: [ "CMD", "redis-cli", "ping" ]
40+
interval: 5s
41+
timeout: 5s
42+
retries: 3
43+
start_period: 5s
44+
stop_grace_period: 3s
2745

2846
volumes:
29-
community-local-mariadb-master-volume:
47+
community-local-mysql:
3048
driver: local
31-
community-local-redis-volume:
49+
community-local-redis:
3250
driver: local
3351

3452
networks:

docker/test/docker-compose.yml

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
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+
--lower_case_table_names=1
13+
--character-set-server=utf8mb4
14+
--collation-server=utf8mb4_general_ci
1115
networks:
1216
- community-test-network
17+
healthcheck:
18+
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
19+
interval: 5s
20+
timeout: 5s
21+
retries: 5
22+
start_period: 10s
23+
stop_grace_period: 3s
1324

1425
threedollar-redis:
1526
image: redis:7.0-alpine
@@ -20,6 +31,13 @@ services:
2031
restart: unless-stopped
2132
networks:
2233
- community-test-network
34+
healthcheck:
35+
test: [ "CMD", "redis-cli", "ping" ]
36+
interval: 5s
37+
timeout: 5s
38+
retries: 3
39+
start_period: 5s
40+
stop_grace_period: 3s
2341

2442
networks:
2543
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)