0
点赞
收藏
分享

微信扫一扫

Linux中Mycat远程连接Mysql8.0提示密码错误

芷兮离离 2022-01-26 阅读 69

Linux中Mycat远程连接Mysql8.0提示密码错误

问题:

当在linux中使用mycat远程连接时候会提示密码错误,具体如下:

解决

防火墙

最开始以为是防火墙未关闭

通过查看防火墙状态发现确实是开启的

firewall-cmd --state

然后关闭防火墙

systemctl stop firewalld.service

最终还是不行

远程权限

又怀疑是MySQL中没有给远程权限,通过以下方式给权限仍未未解决(不过必须要给mysql远程连接的权限)

 

配置文档及jar包

通过多篇博客查询修改/mycat/conf/schema.xml文件中的url为:

url=“jdbc:mysql://localhost?useSSL=false?useSSL=false&serverTimezone=UTC"

但是这样去修改后出现以下错误

​
[root@node-1 bin]# ./mycat console
Running Mycat-server...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    |
jvm 1    |
jvm 1    | WrapperSimpleApp: Encountered an error running main: java.lang.ExceptionInInitializerError
jvm 1    | java.lang.ExceptionInInitializerError
jvm 1    |      at io.mycat.MycatStartup.main(MycatStartup.java:53)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
jvm 1    |      at java.lang.reflect.Method.invoke(Method.java:498)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
jvm 1    |      at java.lang.Thread.run(Thread.java:748)
jvm 1    | Caused by: io.mycat.config.util.ConfigException: java.lang.NumberFormatException: For input string: "mysql://192.168.153.129:3306?useSSL=false&serverTimezone=UTC"
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.load(XMLSchemaLoader.java:121)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.<init>(XMLSchemaLoader.java:78)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.<init>(XMLSchemaLoader.java:82)
jvm 1    |      at io.mycat.config.ConfigInitializer.<init>(ConfigInitializer.java:76)
jvm 1    |      at io.mycat.config.MycatConfig.<init>(MycatConfig.java:72)
jvm 1    |      at io.mycat.MycatServer.<init>(MycatServer.java:180)
jvm 1    |      at io.mycat.MycatServer.<clinit>(MycatServer.java:121)
jvm 1    |      ... 7 more
jvm 1    | Caused by: java.lang.NumberFormatException: For input string: "mysql://192.168.153.129:3306?useSSL=false&serverTimezone=UTC"
jvm 1    |      at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
jvm 1    |      at java.lang.Integer.parseInt(Integer.java:580)
jvm 1    |      at java.lang.Integer.parseInt(Integer.java:615)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.createDBHostConf(XMLSchemaLoader.java:725)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.loadDataHosts(XMLSchemaLoader.java:835)
jvm 1    |      at io.mycat.config.loader.xml.XMLSchemaLoader.load(XMLSchemaLoader.java:113)
jvm 1    |      ... 13 more
wrapper  | <-- Wrapper Stopped

最终的解决办法为找到/mycat/lib/中的mysql-connector-java-5.1.35.jar 然后删除掉将mysql-connector-java-8.0.11.jar驱动放进lib文件夹(maven官网可以下载MySQL的驱动)然后在给jar包赋予权限

chmod 777 mysql-connector-java-8.0.11.jar

在修改/mycat/conf/中server.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License");
        - you may not use this file except in compliance with the License. - You
        may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
        - - Unless required by applicable law or agreed to in writing, software -
        distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT
        WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the
        License for the specific language governing permissions and - limitations
        under the License. -->
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
                <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" defaultAccount="true">
                <property name="password">root</property>
                <property name="schemas">TESTDB</property>
                <property name="defaultSchema">TESTDB</property>
        </user>
</mycat:server>

在修改/mycat/conf/中schema.xml文件

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
        <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
        </schema>
        <dataNode name="dn1" dataHost="host1" database="msb" />
        <dataHost name="host1" maxCon="1000" minCon="10" balance="0"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="hostM1" url="192.168.153.132:3306" user="root"
                                   password="root">
                        <readHost host="hostS1" url="192.168.153.132:3306" user="root" password="root"></readHost>
                </writeHost>
        </dataHost>
</mycat:schema>

成功解决

连接mycat

最后远程连接mycat启动,由于mysql8.0加密问题--default_auth=mysql_native_password是必须要加的

 mysql -uroot -proot -P8066 -h192.168.153.132 --default_auth=mysql_native_password

 

其中参考文档

举报

相关推荐

0 条评论