mysql 远程登录与表名大小写问题

  好久没写博客了,这段时间在学习一个开源的项目,里面使用到了mysql,好久没使用mysql了。在使用过程中遇到了一个问题,远程登陆。报错信息很明显,连接失败。解决思路如下:

    1. 首先检查到服务器网络是否可达,发现并没有什么问题。

    2. 查看用户名密码是否正确,通过在服务器上面登陆查看也没有问题。

    3. 检查mysql服务是否启动,端口是否正确: ps -aux|grep "mysql"    netstat -apn|grep "3306",并检查配置文件中的链接是否正确,一切正常。

    4. 查看选择的用户是否支持远程登录。select * from mysql.user\G; 经过查证work用户的Host值为%通配符,也没有问题。

  这就比较蛋疼了,查看mysql的配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf 发现配置文件中存在绑定属性bind-address=127.0.0.1,首先解释一下这个参数的含义: 此参数主要是配置mysql的监控IP具体的取值如下:

* 接收所有的IPv4 或 IPv6 连接请求
0.0.0.0 接受所有的IPv4地址
:: 接受所有的IPv4 或 IPv6 地址
IPv4-mapped 接受所有的IPv4地址或IPv4邦定格式的地址(例 ::ffff:127.0.0.1)
IPv4(IPv6) 只接受对应的IPv4(IPv6)地址

   看来问题就出现在这了,如果此值为localhost,那么mysql就只能接受本地访问,至于远程访问的请求就无法接受了,所以我们索性把这一行给注释掉,一切OK。(注意: 如果在生产环境上面必须设置为指定IP,否则任何人都可以访问,势必会产生不必要的危险)

 

  问题二: 在运行时出现了另外一个错误,table not exist,但是查看表时确实存在,索性将代码中的表名(大写) 放到终端进行查询,还是出现table not exist错误。修改配置文件中lower_case_table_names参数为1即可,具体分析参见博客https://blog.csdn.net/wyzxg/article/details/44236259 。

 

  如有不当,请批评指正,谢谢!

posted @ 2018-09-05 12:06  奋斗中的屌丝  阅读(285)  评论(0编辑  收藏  举报