【MySQL】常见错误与常用命令的集锦

【背景介绍】

在使用SQL Server数据库期间,想必大家一定都有过解决各种问题的经历了,很多时候,都会在大家的博客中看到问题与解决方案。现在开发使用的是MySQL数据库,现在来看,发现自己在MySQL中的经历越来越多。前两天,自己电脑的MySQL数据库出问题了,折腾了我好几个小时~~

这篇博客就将把之前遇到的和这次遇到的错误记录下来,以后也可以更好更快的找到解决办法吧。

【常见错误】

  • (1) windows mysql提示:1045 access denied for user‘root‘@‘localhost‘ using password yes

参考链接:http://blog.csdn.net/so1127/article/details/6619844

因为在解决这个问题的时候,需要用到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:\MySQL\mysql-5.6.24-winx64
 datadir = E:\MySQL\mysql-5.6.24-winx64\data
    # 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 

参考博客:http://xiejianglei163.blog.163.com/blog/static/12472762014424048216/

我照着博客的内容将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:
    	

参考链接:http://jingyan.baidu.com/article/d5c4b52bee6e69da560dc5ec.html

出现这个问题,我采取的办法是方法二,将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数据库。

参考链接:http://www.cnblogs.com/ycsfwhh/archive/2011/02/18/1957980.html

首先,停止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;(任何主机都可以连接到mysql服务器)

  • (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 回车 输入密码

  • 显示数据库列表

show databases;

  • 选择数据库和显示数据表

use mysql;

show tables;

  • 建库、删库

create database dbName;

drop database dbName;

  • 备份

mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径]

例子:mysqldump -u root -p test>E:\tt.sql

  • 还原

mysql -u root -p<[备份文件的保存路径]

【学习心得】

1.数据库的备份很重要。因为不知道什么时候,什么原因,自己的数据库就不能用了,等到发生了,后悔也来不及了。

2.没有什么解决不了的问题,最坏的办法也就是重头再来。遇到问题了,第一次感觉还好,但遇到了一些没在自己意料之中的问题,遇到了以前的解决方案不再适用这一次的问题,心情就有些不一样了。最后,我还是自己把数据库给弄好了,事实证明,不要放弃,最坏的办法也就是重头再来。

3.学习是一个漫长的、不断补充、不断积累的过程。实际上,解决中文乱码的问题是后来补充的,因为一直都在使用mysql,一直处在不断学习地过程中,后面的学习或者偶尔的遇见,才使得自己把之前的问题解决了,所以,学习前后是一个互为补充的阶段。

时间: 2024-10-02 12:40:48

【MySQL】常见错误与常用命令的集锦的相关文章

2019-6-18 MySQL常见错误大全(陆续更新)

MySQL常见错误大全--使用环境C7.4+MySQL5.7.20一 安装并初始化mysql数据库时可能出现的错误1.执行初始化数据库时报错: mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql 跳出如下错误: /usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.s

mysql 常见错误解决方式

mysql 1449 : The user specified as a definer ('root'@'%') does not exist 分析: 一般是由于root用户对全局host无访问权限.因此只要给root用户添加一个访问权限即可. 解决方式: grant all privileges on *.* to [email protected]"%" identified by "."; flush privileges; 参考: http://bbs.c

MySQL常见错误类型

MySQL常见错误类型:1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库文件失败1012:不能读取系统表中的记录1020:记录已被其他用户修改1021:硬盘剩余空间不足,请加大硬盘可用空间1022:关键字重复,更改记录失败1023:关闭时发生错误1024:读文件错误1025:更改名字时发生错误1026:写文件错误10

Mac下安装MySQL及启动等常用命令

总结了下mac下的mysql安装步骤: eclipse JavaEE 下载         JDK -9 macosx下载 一.安装及启动服务 1. MySQL Server 下载.(以mysql-8.0.3-rc-macos10.12-x86_64.tar.gz为例) 2. 解压并mv至/usr/local/mysql.(其中mysql为跟目录) 3. cd /usr/local 然后 sudo chown -R root:wheel mysql (更改 mysql 安装目录所属用户与用户组)

mysql学习笔记-数据库常用命令

数据库常用命令 1.添加需要路径:PATH="$PATH":/usr/local/mysql/bin 2.登陆数据库系统:mysql -h localhost -u root -p 3.创建数据库:CREATE DATABASE 数据库名 4.显示数据库:SHOW DATABASES; 5.删除数据库:DROP DATABASE 数据库名; 6.创建表:CREATE TABLE 表名(属性名 数据类型 [完整性约束条件],属性名 数据类型 [完整性约束条件],属性名 数据类型); 注意

linux 编译安装php及编译安装mysql常见错误总结及解决办法

一.编译安装php常见错误总结及解决办法 错误 1checking for xml2-config path…configure: error: xml2-config not found. Please check your libxml2 installation.解决办法:# yum -y install libxml2-devel 错误 2 checking for BZip2 in default path… not foundconfigure: error: Please rein

MySQL 数据库和一些常用命令的使用

常用命令总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 create database name; 创建数据库 use databasename; 选择数据库 drop database name; 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 select 中加上di

JDBC连接MySQL常见错误集锦

1. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 原因:Sting类型没有加单引号 2. Duplicate entry '1' for key 'PRIMARY' 原因,主键值存在或混乱,要先删除数据或者清空表 3. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'password' in

MySql数据库2【常用命令行】

(一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL 进入mysql安装目录下的bin目录下,再键入命令mysql -uroot -p,回车后提示你输密码, 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了 2.连接到远程主机上的MYSQL (远程:IP地址) 假设远程主机的IP为:10.0.0.1,用户名为root,密码为123.则键入以下命令: mysql -h10.0.0.1 -uroot