当前位置:   article > 正文

shardingsphere连接mySQL胎教级教程_shardingsphere 5.4.1

shardingsphere 5.4.1

一个零基础大学生,在网上能搜到的教程全都缺胳膊短腿的情况下一路摸爬滚打,进行了不知道多少次试错之后终于成功把这俩连接上了,一怒之下决定做一个胎教级别的教程。已经在舍友的电脑上试验成功,大家可以放心食用。

 环境:window10

大部分操作在命令行中进行

注意:

 安装的版本不同可能造成各种奇怪的问题,由于我使用的版本可以正常连接,因此教程中所提供的链接都是我使用的版本。

一、javaJDK环境

确保你的电脑中已经配置好了java环境

在命令行中输入java -version,若显示版本号,则可继续下一步

如果没有显示版本号,先配置好了再进行后续操作。由于网上的java环境配置教程已经很详细,我就不做赘述。

二、下载shardingsphere5.4.1

下载网址:Apache Download Mirrors

点击箭头所指任意一个链接即可下载

下载后解压,内容如下

三、下载mysql connector-8.0.32

前往官网下载,下载地址:MySQL :: Download MySQL Connector/J (Archived Versions)​​​​​​

Operating System选项选择Platform Independent

Download第二个压缩包

下载之后解压,如图所示,将.jar文件复制到shardingsphere的lib文件夹中

复制完之后的lib文件夹:

四、下载mysql 8.0.35

注意看,这个mysql和上面的mysql connector不是同一个东西

也是在官网下载,网址:MySQL :: Download MySQL Community Server​​​​​

 

⬆点击第一个下载按钮

⬆点击“NO thanks.just start my download"

下载之后解压

刚下载好的文件夹内没有data文件夹和my.ini文件,其中my.ini需要自己新建。

右键新建文本文档,然后修改后缀名为ini即可,my.ini的内容如下:

  1. [mysqld]
  2. # 设置3306端口
  3. port=3306
  4. # 设置mysql的安装目录
  5. basedir=D:\work\mySQL\mysql-8.0.35-winx64
  6. # 设置mysql数据库的数据的存放目录
  7. #datadir=D:\work\mySQL\mysql-8.0.35-winx64\Data
  8. # 允许最大连接数
  9. max_connections=200
  10. # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
  11. max_connect_errors=10
  12. # 服务端使用的字符集默认为UTF8
  13. character-set-server=utf8
  14. # 创建新表时将使用的默认存储引擎
  15. default-storage-engine=INNODB
  16. # 默认使用“mysql_native_password”插件认证
  17. default_authentication_plugin=mysql_native_password
  18. [mysql]
  19. # 设置mysql客户端默认字符集
  20. default-character-set=utf8
  21. [client]
  22. # 设置mysql客户端连接服务端时默认使用的端口
  23. port=3306
  24. default-character-set=utf8

⬆注意把这个basedir的路径修改为自己存放mysql的路径

下面的datadir就是上面提到的data文件夹的生成路径,我用#注释掉了,因为系统会自动生成,更安全。

五、设置mysql系统环境

⬇右键此电脑或直接搜索,选择属性,进入高级系统设置

⬇点击环境变量

⬇选中系统变量中的PATH后,点击编辑

⬇点击新建,然后输入你刚刚下载的mysql-8.0.35-winx64的bin文件夹的路径

⬇路径可以在文件夹中直接复制

!记得点击三次确定,这样才算保存设置

六、启动mysql服务

⬇以管理员身份打开命令行

首先使用cd命令转到你刚刚下载的mysql的bin文件夹的路径(如果不是下载在c盘则需要先转到对应的磁盘中,例如D盘,则使用 "d:"转换),如下图所示

接下去,依次执行如下命令

1.

mysqld --initialize --console

复制记录一下图中的“A temporary password …..:”后面的乱码是你的密码,一会登录要用到

2.

mysqld -install

显示service successfully installed则成功

3.

net start mysql

服务启动成功

4. 测试一下是否可以使用mysql连接本地数据库

mysql -uroot -p

然后输入你刚刚记录的那一长串乱码密码,登陆成功。

5.修改密码

刚刚的密码一大长串太难记,可以修改成一个简单好记的密码

alter user root@localhost identified by 'root';

此处我将密码重置为了"root",记住这个密码,之后还会用到

6.!  !  !  !

在你的本地数据库中添加两个库,使用"create database 数据库名"进行添加,或者直接使用navicat新建,记住你的新建的两个数据库名字,之后会用到。我建的两个数据库名字是demo_ds_0和demo_ds_1,可供参考

  1. create database demo_ds_0;
  2. create database demo_ds_1;
  3. show databases;

mysql配置暂时告一段落,可以使用“\q"或者”exit"命令退出数据库

七、shardingsphere的详细配置

打开你的shardingsphere文件夹,进入conf目录

接下来要对config-sharding.yaml和server.yaml 文件进行修改

首先,右键server.yaml文件,选择打开方式,可以是记事本或者vscode或者visual studio等等

如图所示,文档中的是官方的默认设置,不过已经全部被注释了,所以我们需要在文档的最下面追加内容。

server.yaml配置:

  1. authority:
  2. users:
  3. - user: root@%
  4. password: root
  5. - user: sharding
  6. password: sharding

 追加完毕,在退出之前记得保存。

接下来打开config-sharding.yaml文件,同样翻到最底部进行追加

config-sharding.yaml配置:

  1. databaseName: sharding_db
  2. dataSources:
  3. ds_0:
  4. url: jdbc:mysql://127.0.0.1:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
  5. username: root
  6. password: root
  7. connectionTimeoutMilliseconds: 30000
  8. idleTimeoutMilliseconds: 60000
  9. maxLifetimeMilliseconds: 1800000
  10. maxPoolSize: 50
  11. minPoolSize: 1
  12. ds_1:
  13. url: jdbc:mysql://127.0.0.1:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
  14. username: root
  15. password: root
  16. connectionTimeoutMilliseconds: 30000
  17. idleTimeoutMilliseconds: 60000
  18. maxLifetimeMilliseconds: 1800000
  19. maxPoolSize: 50
  20. minPoolSize: 1
  21. rules:
  22. - !SHARDING
  23. tables:
  24. t_order:
  25. actualDataNodes: ds_${0..1}.t_order_${0..1}
  26. tableStrategy:
  27. standard:
  28. shardingColumn: order_id
  29. shardingAlgorithmName: t_order_inline
  30. keyGenerateStrategy:
  31. column: order_id
  32. keyGeneratorName: snowflake
  33. auditStrategy:
  34. auditorNames:
  35. - sharding_key_required_auditor
  36. allowHintDisable: true
  37. t_order_item:
  38. actualDataNodes: ds_${0..1}.t_order_item_${0..1}
  39. tableStrategy:
  40. standard:
  41. shardingColumn: order_id
  42. shardingAlgorithmName: t_order_item_inline
  43. keyGenerateStrategy:
  44. column: order_item_id
  45. keyGeneratorName: snowflake
  46. bindingTables:
  47. - t_order,t_order_item
  48. defaultDatabaseStrategy:
  49. standard:
  50. shardingColumn: user_id
  51. shardingAlgorithmName: database_inline
  52. defaultTableStrategy:
  53. none:
  54. defaultAuditStrategy:
  55. auditorNames:
  56. - sharding_key_required_auditor
  57. allowHintDisable: true
  58. shardingAlgorithms:
  59. database_inline:
  60. type: INLINE
  61. props:
  62. algorithm-expression: ds_${user_id % 2}
  63. t_order_inline:
  64. type: INLINE
  65. props:
  66. algorithm-expression: t_order_${order_id % 2}
  67. t_order_item_inline:
  68. type: INLINE
  69. props:
  70. algorithm-expression: t_order_item_${order_id % 2}
  71. keyGenerators:
  72. snowflake:
  73. type: SNOWFLAKE
  74. auditors:
  75. sharding_key_required_auditor:
  76. type: DML_SHARDING_CONDITIONS
  77. - !BROADCAST
  78. tables:
  79. - t_address

但是注意,有几个需要修改的地方,如图所示的位置,步骤六中修改的密码和新建的两个库在此处派上用场

保存之后退出。

接下来,进入sharingsphere文件夹的bin目录

双击运行第一个start.bat程序,启动shardingsphere

 如图所示,如果看到最后一行显示”successfully" ,则启动成功。

注意,不要关闭这个窗口,它还有用。

八、使用shardingsphere连接mysql

首先与步骤六相同,使用管理员身份启动命令行,转到mysql文件夹的bin目录下,然后输入

mysql -P3307 -uroot -p

(3307是shardingsphere的默认端口)

如图所示,与步骤六中使用mysql连接本地数据库有一些不同之处。

如果刚刚把shardingsphere的启动窗口关了,这里就会连不上。

然后输入 

show databases;

 

可以看到,相比步骤六中,多出了一个名为sharding_db的数据库,这是在config-sharding.yaml文件中设置的databaseName

然后 使用

use sharding_db;

语句,切换到 sharding_db数据库,测试一下功能:

create table if not exists t_order(order_id BIGINT NOT NULL,user_id INT NOT NULL,status VARCHAR(50),PRIMARY KEY (order_id));

在navicat中可以看到,create table语句在demo_ds_0和demo_ds_1库中都实现了

到此,shardingsphere连接mysql的所有步骤圆满完成

九、遇到的一些问题

1.Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/shardingsphere/sqltranslator/yaml/config/YamlSQLTranslatorRuleConfiguration

检查一下你的shardingsphere的lib目录里的Jar文件,它们可能被在解压缩的时候被解析错误成了奇怪的文件后缀

2.启动shardingsphere时的报错大部分都是config-sharding.yaml文件配置不对造成的,如果有报错,可以尝试把文件内你追加的内容删除再试试是否start successfully

3..在进行mysql -P3307 -uroot -p时,如果把shardingsphere的start.bat窗口关闭了,就会报错ERROR 2003

4.一开始我用的版本是mysql-connector-j-8.1.0+ShardingSphere-Proxy 5.2.1,结果无论输入什么语句都会报错ERROR 2014 (HY000): Commands out of sync; you can't run this command now

后来改了版本之后才正常。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/756888
推荐阅读
相关标签
  

闽ICP备14008679号