日期:2014-05-16  浏览次数:20787 次

Redhat5下使用MySql时的一些问题

首先是从无法远程连接开始的,虽然间接遇到一些问题。

遇到就找出问题,发后总结发出来给大家分享,如果大家也有问题或者已经解决了,希望进行回复!

?

进行远程连接报错 1130

在mysql数据库表user中记录了一些用户信息,里面的host指定了那些客户端可以访问。

如果是在Windows下安装且指定了可以远程访问,那么就不会出现该问题。

解决方法就是修改访问权限:

登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 列,从”localhost”改为'%'。

mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host'   from user where user='root';

?

退出然后重启mysql服务!

1 楼 cuisuqiang 2012-03-19  
也可能出现 1045 错误
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
解决方法,首先停止mysql服务。
service mysqld stop
开始服务但不检查
/usr/bin/mysqld_safe --skip-grant-tables
新建一个连接窗口:
mysql
update user set password=password("123456") where user="root";
flush privileges;
exit
正常启动mysql
这是一种强制更改mysql密码的操作,因为可能出现使用同一个账户同时访问时的异常现象。
2 楼 cuisuqiang 2012-03-19  
在更新user表中我还出现了 1062 错误!
这是表更新的一个错误,查询user表发现有两条记录,删除一条即可。
3 楼 cuisuqiang 2012-03-19  
查看如果建立远程连接时忘记了mysql当时设置的端口,登录mysql
show variables like 'port';
4 楼 cuisuqiang 2012-03-19  
如何查看Mysql的版本:
直接使用Linux命令: mysql -V
查询mysql函数:select version();
帮助里面的显示和查询版本显示是一样的:mysql --help | grep Distrib
5 楼 cuisuqiang 2012-03-20  
在Java连接mysql查询时如果没有指定连接的字符集那查询出来的汉字就会有乱码问题。
所以在连接的URL上写上字符集:
jdbc:mysql://192.168.154.128:3306/information_schema?useUnicode=true&characterEncoding=UTF-8

一般来说,一些国家部门使用的字符集是必须为GBK的,因为GBK是国家标准,不过商用的话UTF-8更适合一些。
6 楼 cuisuqiang 2012-03-20  
如果要使用和oracle中val函数一样的功能,可以使用:
if(列 is null, 0, 1)
7 楼 comsci 2012-03-20  
非常感谢楼主提供的这个信息
8 楼 cuisuqiang 2012-03-20  
关于mysql的一些乱码问题,查看:http://cuisuqiang.iteye.com/blog/1458553
9 楼 cuisuqiang 2012-03-20  
comsci 写道
非常感谢楼主提供的这个信息

互相交流而已!