文档章节

使用MySQL踩过的坑

trayvon
 trayvon
发布于 2016/07/18 08:48
字数 2020
阅读 101
收藏 1
点赞 0
评论 0

   首先从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
粉丝 14
博文 119
码字总数 176520
作品 1
程序员
每日一博 | 基于 Docker 搭建 MySQL 主从复制

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

王练
05/11
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
基于mysql5.7 搭建mysql_InnoDB_cluster

本文按照生产环境的标准来搭建 mysql InnoDB cluster集群 非mysql 官网的Sandbox 模拟搭建 环境:centos7 x64 最小安装 因为文档中含有很多截图,上传图片比较麻烦,我将文档转换成了PDF放在...

奋怒的菜鸟
2017/07/24
0
0
react-native下遇到的坑,在这里都可以解决

React-Native android在windows下的踩坑记 坑很多,跳之前做好准备。没有VPN的同学请浏览完本文后慎行。 你需要先安装最新版本的node.js(我最后使用的是v4.1.2),前往官网下载>> 注:我win...

hqxluoyang
2015/10/27
0
0
说说ejabberd离线消息踩过的坑

使用过ejabberd的或许知道,也许踩过这个坑。那么就说说我们踩过的ejabberd的离线消息的坑吧。 ejabberd原生的离线消息的机制是,一般用户保存100条离线消息,管理员保存5000条离线消息。超过...

nidongwo-
2016/08/29
44
0
Ubuntu16.04下Nginx+uwsgi部署Django项目

之前写了一篇Pycharm远程调试django项目的,只是完成了Django项目在服务器上的运行。而且当时是用的虚拟机,有些坑并没有遇到。前几天买了阿里云的Linux服务器ubuntu16.04,一路搭建环境和部...

丶legend
01/04
0
0
Ubuntu安装TestLink1.9.14

Ubuntu安装TestLink1.9.14 Ubuntu安装TestLink1.9.14 TestLink介绍 TestLink安装 确认安装环境和版本 下载并安装必需软件: 配置apache2 安装testlink版本包 执行testlink安装向导 修改testl...

钢铁峡
2016/08/31
404
0
开源数据库该怎么玩?

9月13日,北京,巨杉数据库主办的“极客Cool” 沙龙第一期圆满结束。沙龙上,开源数据库的三个重要代表SequoiaDB巨杉数据库CTO王涛(NoSQL),阿里云RDS for PostgreSQL/PPAS 专家 萧少聪(P...

巨杉软件
2015/09/14
2.2K
1
北京源创会 —— 褚霸:不要为了开源而开源

11月23日开源中国北京源创会期间,我们邀请了 InfoQ 的 @夕水溪下 对来自阿里的数据库大神 —— 褚霸进行了专访。 余锋(花名褚霸)是阿里巴巴核心系统技术专家,有超过15年的网络和底层系统...

oschina
2014/11/27
5.8K
18

没有更多内容

加载失败,请刷新页面

加载更多

下一页

微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、登录流程图 二、小程序客户端 doLogin:function(callback = () =>{}){let ...

公众号_好好学java
38分钟前
0
1
流利阅读笔记28-20180717待学习

“我不干了!” 英国脱欧大臣递交辞呈 雪梨 2018-07-17 1.今日导读 7 月 6 日,英国政府高官齐聚英国首相的官方乡间别墅——契克斯庄园,讨论起草了一份关于英国政府脱欧立场的白皮书。可是没...

aibinxiao
今天
7
0
OSChina 周二乱弹 —— 理解超算排名这个事,竟然超出了很多人的智商

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @-冰冰棒- :分享Ed Sheeran/Beyoncé的单曲《Perfect Duet (with Beyoncé)》 《Perfect Duet (with Beyoncé)》- Ed Sheeran/Beyoncé 手机...

小小编辑
今天
180
7
Android 获取各大音乐平台的真实下载地址

废话 电脑使用谷歌浏览器或者QQ浏览器的时候。。。。。。。说不清楚,还是看图吧 大概意思就是,只要网页上需要播放,只要能播放并且开始播放,这个过程就肯定会请求到相关的音乐资源,然后就...

她叫我小渝
今天
0
0
shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
1
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部