zoukankan      html  css  js  c++  java
  • 【MySQL】常见错误与经常使用命令的集锦

    【背景介绍】
        在使用SQL Server数据库期间,想必大家一定都有过解决各种问题的经历了。非常多时候,都会在大家的博客中看到问题与解决方式。

    如今开发使用的是MySQL数据库。如今来看,发现自己在MySQL中的经历越来越多。前两天,自己电脑的MySQL数据库出问题了,折腾了我好几个小时~~

        这篇博客就将把之前遇到的和这次遇到的错误记录下来,以后也能够更好更快的找到解决的方法吧。
    【常见错误】
    • (1) windows mysql提示:1045 access denied for user'root'@'localhost' using password yes
        由于在解决问题的时候,须要用到my.ini文件,安装完后并没有这个文件。从网上查的是能够自己创建。于是我就自己创建了一个这种文件。内容例如以下:  
        # For advice on how to change settings please see
        # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
        # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
        # *** default location during install, and will be replaced if you
        # *** upgrade to a newer version of MySQL.
    
    [mysqld]
    
        # Remove leading # and set to the amount of RAM for the most important data
        # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
        # innodb_buffer_pool_size = 128M
    
        # Remove leading # to turn on a very important data integrity option: logging
        # changes to the binary log between backups.
        # log_bin
    
        # These are commonly set, remove the # and set as required.
     basedir = E:MySQLmysql-5.6.24-winx64
     datadir = E:MySQLmysql-5.6.24-winx64data
        # port = 8099
        # server_id = sa
    
        # Remove leading # to set options mainly useful for reporting servers.
        # The server defaults are faster for transactions and fast SELECTs.
        # Adjust sizes as needed, experiment to find the optimal values.
        # join_buffer_size = 128M
        # sort_buffer_size = 2M
        # read_rnd_buffer_size = 2M 
    
        sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
        skip-grant-tables
        default-character-set=utf8
       这个问题就攻克了。在加上这个文件后。我尝试建立新用户。又出现了一个新的问题。


    • (2) ERROR 1364(HY000):Field 'ssl_cipher' doesn't have a default value 

        我照着博客的内容将my.ini文件里的一句话改了:
        sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
        改动为
        sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
        此后,我也成功创建了用户。


        这两个问题攻克了。我在学习网上商城的时候也就一切顺利。


        但前两天,重新启动电脑后,数据库又出现了以下的一系列问题了。
    • (3) 启动MySQL服务,出现错误1067:
        	
        出现这个问题,我採取的办法是方法二,将my.ini文件删除,这样MySQL服务就能够正常启动了。
        但将my.ini文件删除后,一直出现1045的错误,就这样。两个问题好像死循环了,一直都解决不了。无奈之下,卸载了mysql,又一次安装了一次。

        在这里卸载/安装的过程就不说了,以下继续看几个遇到的MySQL的错误:
    • (4) 2003-Can't connect to MySQL server on 'localhost'(10061)
        出现这个错误的原因,是MySQL服务没有启动,可输入service.msc窗体命令。进入到服务管理,将MySQL服务启动即可。或者使用mysql命令启动也能够。


    • (5) Host "localhost" is not allowed to connect to mysql server
        这是在本地都不能登录到MySQL数据库。
        首先,停止mysql服务:sc stop mysql
    	
        然后,mysqld --skip-grant-tables
        另开一个终端。继续。mysqlcheck --check-upgrade --all-databases --auto-repair
        再输入mysql。最终提示连接成功了。

    	
     本地能够连接成功了。以下别人在远程自己的数据库时,可能又会遇到1045的错误。


    • (6) Access denied for user 'root'@'localhost' (using password:YES)
         解决方法:
           方案一:改表
            use [databasename];
            select user,host,password from user;
             update user set host = '%' where user='root';
           方案二:授权
           GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
           FLUSH   PRIVILEGES;(不论什么主机都能够连接到mysqlserver)
    • (7) 中文乱码问题
         在做ITOO项目的时候,从代码中直接插入记录到数据库中。中文便是乱码了。

    第一版思修考试的时候。时间紧张,没有全然解决问题,部分能够导入中文,部分又导入的是乱码。

    在接下来的这一版开发中,最终找到了问题的根源。

         乱码缘由:
            不同的编码格式会导致同一字符,在不同字符集下的编码会不同。相同同一编码在不同的字符集中代码的字符也不相同。

    当你的MySQL返回的字符串的编码格式(字符集)与你的客户工具程序(mysql, php, query browser, ...)当前使用的字符集不同一时候,就会造成乱码。

        乱码后须要检查的信息:
            1. 数据库表中字段的字符集设置 。
    show create table TableName 或 show full columns from tableName
            2. 当前联接系统參数  
    show variables like 'char%'
           提示:
                中文。应确保表中该字段的字符集为中文兼容,详细包括下面四种:
     big5     | Big5 Traditional Chinese
     gb2312   | GB2312 Simplified Chinese
     gbk      | GBK Simplified Chinese
     utf8     | UTF-8 Unicode
       乱码原因
    	
    上图是我在检查上面两条信息的结果,非常明显,所连接的数据库设置的字符集为latin1,所以。导入数据的时候就变成乱码了。
       解决方式:
            用Navicat软件打开相应的数据库,将其数据库属性的字符集设置为utf8.
    	
    【错误总结】
        非常多情况下。都遇到1045的错误,在查资料的过程中,发现普遍的原因有下面两点:
        1.可能是mysql用户表中存在不完整的记录;
        2.可能是没有给mysql用户表中的用户授予权限。
        
        由于mysql数据库不像sql server数据库那样,能够在可视化的界面进行操作,在mysql中,各种操作都是须要通过各种命令去完毕的,以下,就总结一些经常使用的命令。以便提高后期的工作效率。

    • 服务启动与停止
        net stop mysql
        net start mysql
    • 登录mysql
        mysql -r root -p 回车 输入password
    • 显示数据库列表
        show databases;
    • 选择数据库和显示数据表
        use mysql;
        show tables;
    • 建库、删库
        create database dbName;
        drop database dbName;
    • 备份
        mysqldump -u [数据库username] -p [要备份的数据库名称]>[备份文件的保存路径]
      
     样例:mysqldump -u root -p test>E: t.sql
    • 还原
        mysql -u root -p<[备份文件的保存路径]

    【学习心得】
    1.数据库的备份非常重要。由于不知道什么时候,什么原因。自己的数据库就不能用了,等到发生了。懊悔也来不及了。
    2.没有什么解决不了的问题。最坏的办法也就是重头再来。

    遇到问题了,第一次感觉还好。但遇到了一些没在自己意料之中的问题,遇到了曾经的解决方式不再适用这一次的问题。心情就有些不一样了。最后,我还是自己把数据库给弄好了,事实证明,不要放弃,最坏的办法也就是重头再来。
    3.学习是一个漫长的、不断补充、不断积累的过程。实际上,解决中文乱码的问题是后来补充的。由于一直都在使用mysql,一直处在不断学习地过程中,后面的学习或者偶尔的遇见,才使得自己把之前的问题攻克了,所以,学习前后是一个互为补充的阶段。

  • 相关阅读:
    HDU 2196 Computer (树形DP)
    HDU 4756 Install Air Conditioning (MST+树形DP)
    HDU 4126 Genghis Khan the Conqueror (树形DP+MST)
    HDU 4714 Tree2cycle (树形DP)
    HDU 1159 Common Subsequence (LCS)
    HDU 2159 FATE (二维背包)
    HDU 2602 Bone Collector (01背包DP)
    HDU 5918 Sequence I (KMP)
    关于一些逗逼函数//atoi,itoa,strtok,strupr,
    二叉树—-1(No.9HN省赛小题)
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7130275.html
Copyright © 2011-2022 走看看