BFT的IPV6部署
重要:
使用 ifconfig | grep ip -C 5 查询出本机ipv4和ipv6
server部署
1.1 修改bft-server-config.xml
中的部分配置
<httpconfig>
<name>your_server_name</name>
<host>your_server_machine_ipv6</host>
<port>6311</port>
</httpconfig>
<nettyconfig>
<ip>your_server_machine_ipv6</ip>
<port>9091</port>
<commit>100</commit>
<reConnectTime>5</reConnectTime>
</nettyconfig>
1.2 修改bft-server-config.xml
中的部分配置
<dbconfig>
<dbtype>Mysql</dbtype>
<driver>com.mysql.jdbc.Driver</driver>
<connectionurl>jdbc:mysql://address=(protocol=tcp)(host=your_mysql_ipv6)(port=3306)/database</connectionurl>
<user>root</user>
<password>root</password>
</dbconfig>
agent部署
修改bft-agent-config.xml
中的配置
<agent>
<name>your_agent_name</name>
<password>your_agent_pass, default: 000000</password>
<ip>your_agent_machine_ipv6</ip>
<!-- file transfer port-->
<receiveport>7082</receiveport>
<!-- Agent Http internet port -->
<httpPort>8184</httpPort>
</agent>
<servers>
<server>your_server_machine_ipv6:9091</server>
<reConnectTime>60</reConnectTime>
</servers>
console部署
3.1 修改 startBFTConsole.sh
删除脚本中的 -Djava.net.preferIPv4Stack=true
if [ "$1" = "-debug" ]
then
export JAVA_OPTS="${JAVA_OPTS} -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787"
fi
echo ON
nohup "${JAVA_HOME}/bin/java" -Dname=BFTConsole -Dlog4j2.formatMsgNoLookups=true -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true ${JAVA_OPTS} -Dloader.path=./conf,./libs,./webapps -jar ./bftconsole.jar > /dev/null 2>&1 &
3.2 修改/conf/application.properties
的数据库连接信息, 格式如下
spring.datasource.url=jdbc:mysql://address=(protocol=tcp)(host=your_mysql_ipv6)(port=3306)/database
比如: jdbc:mysql://address=(protocol=tcp)(host=fe80::495:f6e8:5c9e:3fdb)(port=3306)/ipv6test
4.logcenter部署
4.1 修改startup.sh
删除脚本中的 -Djava.net.preferIPv4Stack=true
export JAVA_OPTS="$JAVA_OPTS -Dapp.home=$BFT_HOME -DAPP_NAME=$APP_NAME -Dlogging.file=$LOG_FOLDER/${APP_NAME}.log"
export JAVA_OPTS="$JAVA_OPTS -server -Djava.net.preferIPv4Stack=true -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8"
export JAVA_OPTS="$JAVA_OPTS $BFT_MEM_OPTS"
export JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
export JAVA_OPTS="$JAVA_OPTS -Dloader.path=${BFT_HOME}/lib"
4.2 修改/config/application.properties
spring.datasource.url=jdbc:mysql://address=(protocol=tcp)(host=your_mysql_ipv6)(port=3306)/database
注意事项
- 对于服务器部署在linux环境下,配置数据库时,需要在IPv6地址后加上网卡标识。
2.使用ftp上传下载时,在Governor的“服务器管理 > FTP服务器”界面,需要在IPv6地址后加上网卡标识。
IPV6连接数据库总结
以oracle数据库为例
win环境
在win环境上配置ipv6数据库时,如果是IPV6的单播本地链接地址,数据库的url应为
①jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[fe80::495:f6e8:5c9e:3fdb%9])(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl))) 或者②jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[3fff::3])(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=orcl)))
其中%后面的9是win的Scope-id,可通过命令ipconfig查看。
Linux环境
在Linux环境上配置ipv6数据库时,如果是IPV6的单播本地链接地址,数据库的url应为
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[fe80::495:f6e8:5c9e:3fdb%eno16777984])(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))
或者
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[3fff::3])(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=orcl)))
其中%后面的eno16777984是linux的网卡标识,可通过命令ifconfig查看。
注意:要使得②可以连接数据库成功,本机需要配置IPV6的手动IP,配置方式如下:
双击图中的框起来的IPV6协议
输入可自定义IPV6地址,配置如下图所示,然后点击确定
通过ipconfig可查看是否配置正确。
3.用DbVisualizer工具连接IPV6 1.打开工具之后点击下图按钮
2.下一步选择‘Use Wizard’
3.输入连接的名称,点击下一步
选择要连接的数据库类型,下一步
输入连接信息如图所示,点击Finish即连接成功
如果要执行sql语句,选中操作的数据库,点击工具栏的SQL Commander下的第一个
其他数据库的连接信息如下表所示
数据库类型 | IPV6地址 | JDBC URL |
---|---|---|
Oracle11g | fe80::495:f6e8:5c9e:3fdb | jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS= (PROTOCOL=tcp)(HOST=[fe80::495:f6e8:5c9e:3fdb]) (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl))) |
Oracle11g | 3fff::3 | jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS= (PROTOCOL=tcp)(HOST=[3fff::3])(PORT=1522)) (CONNECT_DATA=(SERVICE_NAME=orcl))) |
SQLServer2008 | fe80::495:f6e8:5c9e:3fdb | jdbc:sqlserver://;serverName=[fe80::495:f6e8:5c9e:3fdb]; port=1433;databaseName=v6test |
SQLServer2008 | 3fff::3 | jdbc:sqlserver://;serverName=[3fff::3];port=1433; databaseName=v6test |
Mysql5.5.40 | fe80::495:f6e8:5c9e:3fdb | jdbc:mysql://address=(protocol=tcp) (host=fe80::495:f6e8:5c9e:3fdb)(port=3306)/ipv6test |
Mysql5.5.40 | fe80::495:f6e8:5c9e:3fdb | jdbc:mysql://address=(protocol=tcp)(host=3fff::3) (port=3306)/ipv6test |