今天在本地连接linux服务端的mysql始终报错61,谷歌后找到原因:
linux的mysql默认是不允许远程连接操作的,在stack上面找到方法:修改mysql配置文件/usr/local/mysql/my.cnf,将bind-address=127.0.0.1改为0.0.0.0.再连接时依旧报错,说host不允许连接。谷歌后找到原因,需要修改mysql user表:
x:\>mysql -u root -pvmware mysql> use mysql; mysql> update user set host = ‘%’ where user = ‘root’ and host=’localhost’; #如果不带and host=’localhost’会报错,ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’ mysql> select host, user from user; mysql> flush privileges;
ok。成功。
把工程布置上去,访问始终失败
说是找不到表,但是我的服务端是有这个表的,怀疑是jdk版本1.8的问题,因为我本地是1.7,jdk1.8改动很大,so试着改linux的jdk版本,直接在/usr/local/java里的jdk和jre删掉,将1.7传上去放在那个路径下,并修改配置文件/etc/profile里的jre和jdk环境变量。将1.8删掉后java命令的确找不到了,但是1.7设置好后java命令依旧找不到。在命令行输入java后找不到命令,系统提示几个jre和jdk的包,是openjdk和openjre。没办法了,直接apt-get openjdk,安装好后,java命令成功。重启工程,依旧报错说表找不到。很奇怪,明明有表的,和本地一样。问了几个同事说可能是linux mysql大小写敏感的问题,我的实体类的名字User,但表中表名是user,难道实体类名字也影响,没办法将linux的user表名改成User,奇迹发生了,可以访问了。
表示这几天已被linux搞蒙,不过学到东西了。。呵呵大