IT忍者神龟之Windows下MySQL解压版安装与配置

来源:互联网 发布:淘宝招募分销商 编辑:程序博客网 时间:2024/05/29 13:33
1. 到官网下载MySQL解压版,然后将mysql解压到任意路径,本例放在:D:\Program Files\mysql-advanced-5.6.14-win32

2. 设置环境变量,在系统变量Path中添加:;D:\Program Files\mysql-advanced-5.6.14-win32\bin

3. 在根目录下面有以"my-"开头的ini文件,随意复制一个放在根目录,如:my-default.ini,将文件名修改为my.ini,添加以下内容:

[mysqld]  
#设置字符集为utf8  
default-character-set = utf8  
basedir = D:/Program Files/mysql-advanced-5.6.14-win32  
datadir = D:/Program Files/mysql-advanced-5.6.14-win32/data  

[client]  
#设置客户端字符集  

loose-default-character-set = utf8  
[WinMySQLadmin]  
Server = D:/Program Files/mysql-advanced-5.6.14-win32/bin/mysqld.exe

4. 打开命令提示符,进入D:/Program Files/mysql-advanced-5.6.14-win32/bin目录,执行命令:mysqld -install将mysql安装到windows的服务。执行成功后会提示:Service successfully installed.

如果想要卸载服务执行命令:mysqld -remove。

5. 然后在命令提示符下执行:net start mysql就能启动mysql了,停止服务输入命令:net stop mysql。如果想设置mysql是否自动启动,可以在开始菜单->运行中输入service.msc打开服务管理进行设置。

6. 第一次登录的时候输入:
C:\Users\Administrator>mysql -u root
修改密码:
mysql> update mysql.user set password=PASSWORD('root') where User='root'
mysql> flush privileges

7. 若启动mysql的时候报错:系统出错  发生系统错误 1067  进程意外终止
打开D:/Program Files/mysql-advanced-5.6.14-win32/data目录下的用户名.err文件,mysql的错误日志就记录在这个文件中。在里面发现这样一句话:
110327  0:12:02 [ERROR] MySQL: unknown variable 'default-character-set=utf8'
感觉很奇怪,以前一直都这样安装的。最后在mysql的官网上找到一篇中国DBA的求助信息,原来这是新版本的一个bug,不支持在my.ini中直接设置字符集为utf8。解决办法是:在default-character-set=utf8前面加上loose-即:

[mysqld]  #设置字符集为utf8  
loose-default-character-set = utf8  
basedir = D:/Program Files/mysql-advanced-5.6.14-win32  
datadir = D:/Program Files/mysql-advanced-5.6.14-win32/data  

[client]  
#设置客户端字符集  
loose-default-character-set = utf8  
[WinMySQLadmin]  
Server = D:/Program Files/mysql-advanced-5.6.14-win32/bin/mysqld.exe 

8. 虽然使用上面的方式加入loose-以后,mysql启动不再报错了。但是在插入数据时依然出现了乱码问题。
mysql> show variables like '%char%';
通过以上命令查看字符集编码,得到如下结果:
+--------------------------+---------------------------------------+
| Variable_name            | Value                                 |
+--------------------------+---------------------------------------+
| character_set_client     | utf8                                  |
| character_set_connection | utf8                                  |
| character_set_database   | latin1                                |
| character_set_filesystem | binary                                |
| character_set_results    | utf8                                  |
| character_set_server     | latin1                                |
| character_set_system     | utf8                                  |
| character_sets_dir       | C:\mysql-5.5.10-win32\share\charsets\ |
+--------------------------+---------------------------------------+

可以看出character_set_database ,character_set_server 的编码还是默认的latin1。修改my.ini配置文件如下:

[mysqld]  
#设置字符集为utf8  
loose-default-character-set = utf8  
character-set-server = utf8
basedir = D:/Program Files/mysql-advanced-5.6.14-win32  
datadir = D:/Program Files/mysql-advanced-5.6.14-win32/data 

[client]  
#设置客户端字符集  
loose-default-character-set = utf8  

[WinMySQLadmin]  
Server = D:/Program Files/mysql-advanced-5.6.14-win32/bin/mysqld.exe

重启服务进入mysql再次查看:

+--------------------------+---------------------------------------+

| Variable_name            | Value                                 |

+--------------------------+---------------------------------------+
| character_set_client     | utf8                                  |
| character_set_connection | utf8                                  |
| character_set_database   | utf8                                  |
| character_set_filesystem | binary                                |
| character_set_results    | utf8                                  |
| character_set_server     | utf8                                  |
| character_set_system     | utf8                                  |
| character_sets_dir       | C:\mysql-5.5.10-win32\share\charsets\ |

+--------------------------+---------------------------------------+

OK


注: 
    MySQL的管理员用户名为root,密码默认为空 

修改root密码 
MySQL配置好后,启动成功,默认密码是空,但是为了安全,设置密码(MySQL有一个默认用户名为root,密码自己设定:假如设为root)。 
1)登录MySQL root用户: 
   打开命令行,执行:

Java代码 复制代码 收藏代码
  1. mysql -uroot -p  
[java] view plaincopy
  1. mysql -uroot -p  

2)修改root密码: 
  
Java代码 复制代码 收藏代码
  1. mysql> update mysql.user set password="root" where User="root";   
  1. mysql> flush privileges;   
[java] view plaincopy
  1. mysql> update mysql.user set password="root" where User="root";  
  1. mysql> flush privileges;  

以后再进入MySQL,则为:Java代码 复制代码 收藏代码
  1. mysql -uroot -proot  
[java] view plaincopy
  1. mysql -uroot -proot  

我在windows下安装了mysql,但是不用密码就能登进去,而root明明是有密码的,我用select user()命令查看当前登录用户是root。

查看数据库,只能看到自带的两个数据库(information_schema和test),mysql这个数据库都看不到。如果运行use mysql,就会出现 Access denied for user ''@'localhost' to database 'mysql', 这说明这是匿名登录的,几乎什么权限都没有。即使用mysql -u root登录也是提示这个。

网上搜了很多资料,大多数是教的怎么在linux下解决这个问题。

我综合了大多数的方法,自以为找到了解决的办法,所以特意在博客园这里写下这篇文章:

 

1.首先,网上的资料都提到了需要关闭mysqld这个服务来屏蔽权限检查,我查看了任务管理器,发现的确有一个叫mysqld.exe的程序在运行:

直接关闭这个进程

我查阅了帮助手册,”MySQL服务器也就是mysqld,是在MySQL安装中负责大部分工作的主程序。服务器随附了几个相关脚本,当你安装MySQL时它们可以执行设置操作,或者是帮助你启动和停止服务器的帮助程序。“ 我估计它相当于mysql的守护进程,不停止它就无法设置启动脚本。

 

2.网上都提到了

mysqld-nt --skip-grant-tables

mysqld_safe --skip-grant-tables

safe_mysqld --skip-grant-tables 等关闭权限检查的方法,但是我在CMD命令提示符下输入都提示:“mysqld_safe”不是内部或外部命令,也不是可运行的程序或批处理文件。

于是我查看mysql安装目录下的bin文件夹里有哪些相关的文件:

(1)mysqld.exe (2)mysqld_multi.pl

我查看了帮助手册,“在Unix和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。为了保持同旧版本MySQL的向后兼容性,MySQL二进制分发版仍然包括safe_mysqld作为mysqld_safe的符号链接。默认情况下,mysqld_safe尝试启动可执行mysqld-max(如果存在),否则启动mysqld。”  

我估计mysqld_safe是mysqld.exe文件里的一个启动选项。所以我尝试了这样输入:

先跳转到mysql的bin目录下,再输入mysqld --skip-grant-tables。这时候有可能一直没有反应的样子,不会生成新的一行输入。

实际上它已经停止了权限检查,我们可以进行其他操作了。

 

3.重新打开一个cmd命令提示符窗口,进入到mysql里面,然后输入use mysql,就会发现成功了!:

看到没?上面最后一行提示的是Database changed!!

如果你输入show tables就会看到这个数据库下有个表叫user,记录了登陆的账户名和密码。

所以你可以这样修改root账户的密码:

UPDATE user SET Password=PASSWORD('123') WHERE user='root';

 貌似还要加上一句:mysql>flush privileges;重新加载权限表。

这时你使用MySql Command Line Client登陆的话,就会要求输入密码123了!你已经不是匿名登陆,所以可以进行各种操作了!!!

1 0
原创粉丝点击