MySQL解压版安装与配置 (Windows)

Mysql  /  houtizong 发布于 3年前   164
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了(报错时请看第7条),停止服务输入命令:net stop mysql。如果想设置mysql是否自动启动,可以在开始菜单->运行中输入service.msc打开服务管理进行设置。

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

以后修改密码:
C:\Users\Administrator>mysql -u root -p
输入root账号的密码
修改密码:
mysql> update mysql.user set password=PASSWORD('1234') where User='root';

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\ |

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

9. 为其它主机授权
  如果需要其它主机(可以是外网IP)连接到mysql,需要向mysql数据库里的user表添加相关授权。这里就演示root用户,如下:
C:\Users\Administrator>mysql -u root -p
输入root账号的密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
mysql>flush privileges;

  grant语法:
  grant 权限名(所有的权限用all) on 库名(*全部).表名(*全部) to '要授权的用户名'@'%'(%表示所有的IP,可以只些一个IP) identified by "密码" WITH GRANT OPTION;
  身份检查使用user表(Host, User和Password)3个范围列执行。服务器只有在user表记录的Host和User列匹配客户端主机名和用户名并且提供了正确的密码时才接受连接。
上一篇:设计模式概述
下一篇:Spring

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客