• MySQL8多实例安装与mycat连接,最详细版本。


    【版权所有,转载请注明出处!违者必究!】

    最近在搞mycat去实现主从库读写分离,所以博主就在自己的windows机器上进行了环境的搭建,在搭建MySQL多实例的时候还算顺利,就是mysql8和mycat连接的时候,真真正正的体会到了什么叫做坑啊,因为现在百度上面搜索出来的基本上是老版本之间的连接,所以相关资料很少,于是我才有想记录下来这个比较新的版本之期间的连接。

    下面介绍一下演员:

    1.mysql-8.0.20-winx64.zip(传送门到windows版本下载)

    2.Mycat-server-1.6-RELEASE-20161028204710-win.tar.gz(传送门到windows版本下载

    3.windows 10环境

    一、mysql8多实例安装步骤:

    1.将mysql三个压缩包分别解压至三个文件夹,并命名如下图所示:

     2.点击进入mysql1文件夹,在目录下新建my.ini文件,文件内容如下:

    [client]
    default-character-set=utf8
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [mysqld]
    #skip-name-resolve
    #skip-grant-tables
    default-authentication-plugin=mysql_native_password
    lower_case_table_names = 1
    character_set_server = utf8
    #设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=D:mysqlmysql1
    # 设置mysql数据库的数据的存放目录
    datadir=D:mysqlmysql1data
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    character-set-server = utf8mb4
    performance_schema_max_table_instances = 600
    table_definition_cache = 400
    table_open_cache = 256
    

    3.用管理员身份打开命令窗口,这点很重要,一定是管理员身份,不会的自行百度。

     4.切换目录至mysql1的bin目录下

     5.执行初始化安装命令

    .mysqld --defaults-file=D:mysqlmysql1my.ini --initialize --console

    注意这个时候,安装成功后,会随机分配mysql  root用户的登录密码,一定要记录下来,后面登陆修改密码的时候会使用到。

    6.执行服务安装目录

    .mysqld install MySQL1 --defaults-file="D:mysqlmysql1my.ini      

    7.启动服务

    net start MySQL1

    8.登陆mysql

    .mysql -u root -p --protocol=tcp --host=localhost --port=3306

    提示输入步骤5的密码,直接拷贝即可。

    9.修改密码并刷权限

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

    flush privileges;

    至此,第一个mysql实例服务已经安装完成,其与服务参考上述步骤即可。下图为安装后的效果。

     二、mycat安装与连接

    1.解压mycat压缩包到mycat文件下。

    2.配置环境变量

    Path中添加

     这里mycat有几个重要的配置文件,因为网上有很多这种文件的讲解,所以我不做过多阐述,因为我的初衷是实践部分

    首先,我们要配置mycat conf目录下的server.xml,每种配置文件修改之前记得备份一下原始文件

     

     看到这个截图,你肯定慌了,怎么复制粘贴,别慌,下面就是了。

    <system>
      <property name="defaultSqlParser">druidparser</property>
      <property name="useHandshakeV10">1</property>
      <property name="mutiNodeLimitType">1</property>
      <property name="charset">utf8</property>
      <property name="serverPort">8066</property>
      <property name="managerPort">9066</property>
    </system>

    <user name="root">
      <property name="usingDecrypt">1</property>
      <property name="password">GO0bnFVWrAuFgr1JMuMZkvfDNyTpoiGU7n/Wlsa151CirHQnANVk3NzE3FErx8v6pAcO0ctX3xFecmSr+976QA==</property>
      <property name="schemas">tjyj</property>
    </user>

     因为我是使用的mycat密码密文加密形式,你也可以使用不加密的方式,只需修改一下user标签里面的内容为:

      <property name="password">123456</property>
      <property name="schemas">tjyj</property>

     这些标签的意思我不讲解了,你就反正是粘贴复制,等你想知道的时候,去看看其他文章就行了。

    然后是修改schema.xml文件,下面的这些步骤才是精华部分,因为现在网上大多是基于老版本构建的,所以请注意咯。

     注意:mysql8连接mycat的时候,因为密码方式的问题只能采用jdbc的方式去连接mycat。

    具体的配置,你拷贝下面这段话就行了

    <!-- 设置表的存储方式.schema name="TESTDB" 与 server.xml中的 TESTDB 设置一致 -->
    <schema name="tjyj" checkSQLschema="true" sqlMaxLimit="100">
      <table name="t_user" dataNode="node_db01" />
    </schema>
    <!-- 设置dataNode 对应的数据库,及 mycat 连接的地址dataHost -->
    <dataNode name="node_db01" dataHost="locahost01" database="db1" />

    <!-- mycat 逻辑主机dataHost对应的物理主机.其中也设置对应的mysql登陆信息 -->
    <dataHost name="locahost01" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc">
      <heartbeat>select user();</heartbeat>
      <writeHost host="MySQL1" url="jdbc:mysql://127.0.0.1:3306?useSSL=false&amp;serverTimezone=UTC" user="root" password="123456"/>

      <!--这里新建你的从数据库-->
    </dataHost>

    这里有一个重要的步骤就是一定要下载mysql8的jdbc驱动放到mycat/lib目录下,必须使用8.0以上jar的版本 ,我这里使用的是mysql-connector-java-8.0.16.jar

    算了,csdn上面是收费的,我就放个网盘地址吧:

    链接:https://pan.baidu.com/s/1gKGj3DgD5JxDl2njp5IOhA
    提取码:xetb

    哦对了,有必要讲一下基于这个配置的数据库的建立:

    在3306端口的数据库新建数据库名字 db1

    然后新建表t_user,表中就id和name两个字段,自己建一下就行了,

     还有一个地方,如果你的数据库不能基于IP访问,请百度一下mysql打开远程登录。

    然后点击 mycatin目录下的startup_nowrap.bat文件。

    运行效果如下图:

    然后测试一下mycat的连接

     

     然后,在mycat虚拟库中执行sql

    insert into t_user values(1,'abc');

    看下物理库和虚拟库是否已经插入数据:

     物理库:

     

     好了,至此就结束吧,如果你还不成功的话,就加我Q吧,632132852

  • 相关阅读:
    【Codeforces 429D】 Tricky Function
    【HDU 1007】 Quoit Design
    S3C2440开发环境搭建(Ubuntu)
    ubuntu 14.04使用root登陆出现错误“Error found when loading /root/.profile”解决
    Ubuntu 14.04下NFS安装配置
    gcc及其选项详解
    class_create(),class_device_create()创建/dev/xxx 名字
    class_create(),device_create自动创建设备文件结点
    ZedGraph 总论
    ZedGraph类库之基本教程篇
  • 原文地址:https://www.cnblogs.com/wudi521/p/12963744.html
Copyright © 2020-2023  润新知