Home  >  Article  >  Database  >  mysql 常见错误_MySQL

mysql 常见错误_MySQL

WBOY
WBOYOriginal
2016-06-01 13:06:221019browse

错误1:   java.sql.SQLException: null,  message from server:   is not allowed to connect to this MySQL server"

解决方法:

结果是这样的:

那我们应该怎样解决这个问题呢?

我也是查了一下资料,才把这个问题给搞定的。。。。

其实道理很简单,也就是说,远程的机器B不允许机器A访问他的数据库。也就是说,我们要解决这个问题,就是要让机器B的数据库允许

机器A访问,就搞定啦;

操作步骤也是很简单的:

一:打开mysql控制台,输入:

1 use mysql; 2 3 show tables;

二:输入:

1 select host from user; 2 3 update user set host ='%' where user ='root';

三:进入计算机的服务界面,重新启动mysql服务就搞定啦。。

四:下面是运行效果图:

返回值都为1,说明,程序运行正常....同时也祝你好运....

还有跟多方法:http://hi.baidu.com/soutnila/item/5356f2c0002781bf0d0a7bae

 

 

 

错误2:Access denied for user (using password: YES) 

解决方法:

第一:

访问首页出现Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in c:InetpubwwwrootclasscoreIBMysql.php on line 51
mysql error:
1045:Access denied for user 'root'@'localhost' (using password: YES)
数据库连接文件里的用户名和密码设的不对

在config.php里改下你mysql的帐户的用户名和密码

帐户用root就得填上root对应的密码

 

第二:

用mysql -uroot -p登录时提示ERROR 1045 : Access denied for user'root'@'localhost'(usingpassword:YES) ,首先就判断是不是密码输错了。我记得我编译的时候给root设了个密码123,但是不行。直接用mysql -uroot也登录不进,于是就想重新设一下密码看看,步骤如下:

1.停止mysql服务:service mysql stop  (最好不要用killall -TERM mysql,可能会导致数据表损坏)

2.以不检查权限的方式登录:#bin/mysqld_safe --skip-grant-tables & (进入你安装mysql的目录运行此条命令,比如我的mysql安装在/usr/local/mysql;如果你不想进入安装目录,则可以直接输入/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &)

3.用空密码登录,直接按回车,成功登录mysql:#bin/mysql -uroot -p (同上)

4.手动更新mysql库中的user表从而设置新密码:mysql>update mysql.user set password=password("你要设置的密码") where user="用户名,这里用root";

5.刷新mysql的系统权限相关表,使密码生效:mysql>flush privileges;

6.退出:mysql>exit;

7.重启mysql服务:service mysql restart

再用新密码登录看看,可以正常登录了。

当然这种方法也可以用来解决忘记mysql密码的问题。(转载地址:http://chhenji.blog.163.com/blog/static/1332713172010510238041/)

 

问题3:mysql 插入中文乱码解决方案

方法:

MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。下面将分两部分,分别设置服务器编码和数据库、数据表与连接部分的编码,从而杜绝中文乱码的出现。

  一 服务器编码设置

  服务器编码设置方法有二:

  一是安装mysql时,其中会有一个步骤选择编码方式,此时选择gbk即可。如果不选择,默认的编码是latin1;

  二是在安装玩mysql之后,手动修改其配置文件,如下:

  (1)修改 MySql安装目录下面的my.ini(MySQL Server Instance Configuration 文件)。 设置

        default-character-set=gbk(注意,有2处) 
  (2)修改data目录中相应数据库目录下的db.opt配置文件        default-character-set=gbk        default-collation=gbk_chinese_ci   重启数据库,关闭控制台窗口重新登录数据库即可。   二 数据库、数据表和连接部分的编码设置  2.1 设置数据库和数据表编码  要解决乱码问题,首先必须弄清楚数据库和数据表用什么编码。如果没有指明,将是默认的latin1。
用得最多的应该是这3种字符集 gb2312,gbk,utf8。
  如何去指定数据库和数据表的字符集呢?下面也gbk为例:
  【在MySQL Command Line Client创建数据库 】
  mysql> CREATE TABLE `mysqlcode` (
  -> `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  -> `content` VARCHAR( 255 ) NOT NULL
  -> ) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;
  Query OK, 0 rows affected, 1 warning (0.03 sec)
  其中后面的TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;
就是指定数据库的字符集,COLLATE (校勘),让mysql同时支持多种编码的数据库。
  当然也可以通过如下指令修改数据库数据表的字符集:
    alter database mysqlcode default character set 'gbk'.
  前面已经设置了服务器、数据库和数据表的编码,那么数据库中的编码便都是gbk,中文可以存储进去。但是如果你要通过执行insert或select等操作时,仍然会出现中文乱码问题,这是因为还没设置“连接(connection)”部分的编码,而insert、select等数据库操作都包含与数据库的连接动作。如果不信,你现在可以执行下面的sql文试一试:  mysql> insert into mysqlcode values(null,'java爱好者');
  按回车,结果如下:  ERROR 1406 (22001): Data too long for column 'content' at row 1
    2.2 设置连接编码  设置了服务器、数据库和数据表部分的编码,必须设置连接编码。连接编码设置如下:  mysql> SET character_set_client='gbk';
  mysql> SET character_set_connection='gbk'
  mysql> SET character_set_results='gbk'
  设置好连接编码,下面便可以成功插入中文了:  mysql> insert into mysqlcode values(null,'java爱好者');
  Query OK, 0 rows affected (0.02 sec)
    其实,上面设置连接编码的三条命令可以简化为一条:  mysql> set names 'gbk';    设置好了连接编码后,在select查询时,也能正确显示中文:  mysql> select * from mysqlcode;
  +----+-----------+
  | id | content |
  +----+-----------+
  | 1   | java爱好着 |
  +----+-----------+
  1 row in set (0.00 sec)    三 完整示例  下面将用一个例子完整地将上面的理论演示一遍,最后达到能向mysql中插入中文的目的:  3.1 设置mysql服务器编码  这一步请参见上文第一节,主要就是在安装mysql之后,修改my.ini和dataTable.db中的编码为gbk   3.2 创建一个数据库  先连接到本地数据库:mysql -h localhost -u root -proot,接着创建一个数据库:  mysql> create database test;   3.3 创建数据表并设置其编码  -- 中文编码测试数据表  use test
  DROP TABLE IF EXISTS `test`.`test_nml`;
  SET @saved_cs_client = @@character_set_client;
  SET character_set_client = gbk;
  CREATE TABLE  `test`.`test_nml` (
    `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `content` VARCHAR( 255 ) NOT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=gbk COMMENT='用户基本信息';
  SET character_set_client = @saved_cs_client;  这里的红色部分等价于上文中的TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;  3.4 插入中文数据  --插入数据
  SET @saved_cs_client = @@character_set_client;
  set names gbk;
  insert into test_nml values(null,'我是中文');    注意:每次执行insert或update或select连接操作时,都必须设置编码,即在前面加上:set names 'gbk';

 

本人采用mysql-5.0。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn