文档章节

使用MySQL踩过的坑

trayvon
 trayvon
发布于 2016/07/18 08:48
字数 2020
阅读 106
收藏 1

   首先从MySQL官方网站下载MySQL,我选择的是5.6的非安装版本,是在Windows系统系,MySQL下载地址。然后解压到你想要的目录,把my-default.ini拷贝一份重命名为my.ini这个是MySQL服务启动时默认读取的配置文件。如下图所示:

                      

1  MySQL目录

   为了方便,把MySQLbin目录加入到path环境变量中,当在程序在搜索可执行程序的时候会搜索path指定的目录。我们就可以直接像这样mysql –u root –p执行命令,而不用像D:\db\mysql\mysql-5.6.31-winx64\bin\mysql –u root –p这样来执行命令。

一、添加环境变量

1.      右键计算机选择属性

2 计算机属性

 

2.      选择高级系统设置

3 系统高级设置

 

3.      选择环境变量

4 系统环境变量

 

4.      选择Path变量,单击编辑按钮

5 编辑环境变量

 

5.      添加MySQLbin目录

6 添加MySQL环境变量

注意:上面是添加MySQLbin目录,不是覆盖,只需要使用分号(;)把前面的目录隔开就可以了。

二、MySQL服务

 

1MySQL客户端(mysql)与MySQL服务(msyqld

   这里首先要区分一下MySQL的服务器和MySQL的客户端,因为可能会有同学对这2个概念有点混淆。有的同学可能会看到过下载MySQL的时候有很多包可选,有的只有几兆,十几兆,有的却有几百兆。这里除了版本、针对的系统不一样之外,还有就是有的只有MySQL客户端工具,有的只有MySQL服务器,有的是包含各种套件,包括客户端,服务器以及测试套件等。

   这里最重要的也是最容易混淆的区分就是MySQL的客户端和MySQL的服务。我们一般通过mysql命令只是一个客户端工具而已,并不包含MySQL的服务,mysqlMySQL客户端)和mysqld(MySQL服务)是分开的。我们可以通过只下载一个几兆的MySQL的客户端也可以使用远程的MySQL服务。而如果要使用本地MySQL服务,就要启动MySQL服务。

2. MySQL服务启动

可以直接通过下面2个命令来启动服务

mysqld

mysqld --defaults-file="D:\db\mysql\mysql-5.6.31-winx64\my.ini"

一个是指定了配置文件一个是没有指定配置文件启动MySQL服务的。如果启动成功就会看到如下图所示的界面:

              

7 启动MySQL

 

   然后上面的窗口就可以关闭了,可以在Windows任务管理器中就可以看到一个mysqld进程:

8 mysqld进程

 

接下来就可以直接通过下面的命令直接回车连接MySQL服务了

mysql –u root -p

           

9 连接MySQL服务

   这是因为MySQL非安装版默认有2个用户,一个是root,一个是空(不是null),都是没有密码的。可以通过root用户执行下面的命令来查看:

Select host,user,password from mysql.user

 

                 

10 MySQL默认用户

 

   当用户密码为空(’’不是null)的时候可以直接连接数据库服务,如上图host列表示可以连接的主机iplocalhost127.0.0.1::1都是表示本机,::1IPV6的表示方法。就是说只允许主机没有密码连接,还有一个通配符%表示任意,例如,最常见的表示就是host设置为192.168.%.%用来限制只有指定的网段能够通过这个用户这个密码连接MySQL服务。

   为了安全,还是为root用户设置一个密码吧,可以通过下面的语句来设置MySQL的密码。

update mysql.user set password=password(123456) where user='root';

   上面的SQL语句是将用户名为root的用户密码修改为123456password(123456)是调用MySQLpassword函数对密码123456进行加密处理。因为MySQL存储的密码都是加密的。

 

3. 安装MySQL服务

如果觉得每一次都要执行命令启动MySQL服务麻烦就可以安装MySQL服务,然后设置自动启动。可以通过下面的命令来安装MySQL服务:

mysqld --install mysql --defaults-file="D:\db\mysql\mysql-5.6.31-winx64\my.ini"

   其中mysql是要安装服务的名字。如果出现像下面的情况那么就恭喜你,你踩到坑了,而且还是天坑。

             

11 启动MySQL服务

   诶,不是明明提示Service successfully installed吗?就算我这英语渣渣也是知道提示我服务安装成功了啊。下面我们来尝试启动一下MySQL服务,执行命令。

net start mysql

              

12 令人崩溃的错误

   发生了系统错误2,系统找不到指定文件。那画面太美我不敢看,人与电脑最基本的信任呢?这究竟是道德的沦丧,还是系统的扭曲。嗯,我们还是来看一下我们安装的服务吧。执行services.msc命令打开service服务查看窗口找到我们安装的mysql服务,右键选择属性。

              

13 查看服务属性

   发现安装的mysql服务的可执行文件根本就不是我们的MySQLbin目录下的mysqld服务啊,这是什么鬼。

                        

14 服务属性

 

   怎么解决呢?首先先删除原来的服务,然后在我们的mysqlbin目录下来执行安装服务。

删除服务,可以通过下面的命令来执行

sc delete mysql

mysqld –remove mysql

 

   然后在MySQLbin目录下执行安装服务命令,可以发现同样的命令只是换了一个目录执行就成功了。

               

15 启动MySQL服务成功

三、编码配置

   在刚刚开始使用MySQL的时候,遇到最多的问题肯定是MySQL的编码问题了。可以执行下面的命令查看MySQL的各个编码设置。

show variables like ‘char%’

show variables like ‘char%’

          

16 查看MySQL编码

   一般情况下为了偷懒,我们会把除了character_set_filesystem的编码外的所有编码设置为utf-8。最简洁的配置就是在my.ini(Linux下的my.cnf)文件中配置为下面的样子。

[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8


sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

           

17 配置之后的MySQL编码

 

   如果是安装MySQL服务配置是要在MySQL服务安装之前配置,如果已经安装了想重新配置,关闭服务,删除服务,重新安装就可以了。如果发现数据库中已经有乱码问题了,才重新配置,需要删除数据库重新建立数据库。

四、一些问题的解决方法

   当我们遇到问题的时候,有时候根本无从下手,因为没有进入程序,所以也得不到应用程序的任何日子,就可以通过Windows的日子中的应用日子来得到一些信息,有时候这些信息是非常有用的。例如,常见的的my.ini编码配置错误的时候出现的错误提示:

18 启动MySQL错误

   通过一般的信息可能不是很清楚发生了什么,就可以执行win+R 然后输入compmgmt.msc,然后回车确定打开Windows的组件管理器。

                        

19 启动Windows组件管理器

 

             

20 查看Windows应用系统日志

   通过上面的方法如果对于MySQL熟悉的话,还是能获得很多有用的信息,比如启动了那些组件,在什么时候出的错误执行的关闭流程,根据这些信息结合一些MySQL的知识基本就可以知道MySQL出现错误的原因了。

© 著作权归作者所有

共有 人打赏支持
trayvon
粉丝 15
博文 125
码字总数 185245
作品 1
程序员
私信 提问
每日一博 | 基于 Docker 搭建 MySQL 主从复制

本篇博文相对简单,因为是初次使用 Docker ,MySQL 的主从复制之前也在 Centos 环境下搭建过,但是也忘的也差不多了,因此本次尝试在 Docker 中搭建。根据网上教程走还是踩了一些坑,不过所幸...

王练
05/11
0
0
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)

系列目录 一、安装MySql 二、安装并破解Navicat 三、没有my.in配置文件怎么办 四、设置MySql的大小写敏感 五、重置MySql登陆密码 这一篇可以说是我的踩坑的血泪史了。。。 MySql在Windows下默...

在7楼
07/30
0
0
[踩坑] MySQL max_allowed_packet导致sql文件source异常问题

踩坑: 今天通过mysqldump导出数据,在目标机器上开个screen执行source导入数据。过一会看了下,发现居然导入报错了。报错提示如下: 刚开始还以为是sqlmode设置的问题,改了sqlmode为宽松模...

余二五
2017/11/15
0
0
一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

阅读目录 1.关于Power BI的版本信息 2.Power BI连接Oracle踩坑记 3.连接Mysql数据库 4.参考文献与资料   说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂...

老朱第八
01/09
0
0
LINUX下mysql安装踩过的坑

LINUX下mysql安装踩过的坑 闲来无事租了台阿里云的服务器,一年99比较便宜就租了两年玩玩顺便学习下linux常用的命令。昨天花了挺长时间装了个mysql数据库遇到了不少坑,因此记录下来,省的以...

优惠券发放
07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

降压变换器 Buck

特点 输入输出极性相同。 工作过程 在 MOS 导通时,输入电源通过 L 和 C 滤波后向负载端提供电流;当 MOS 断开后,L 通过二极管续流,保持负载电流连续。输出电压因为占空比的作用,不会超过...

colinux
30分钟前
0
0
Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
3
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
4
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
3
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部