不多说什么了,直接上步骤。
注:本文所使用MySql版本为:5.7.17-winx64
1、本文将mysql数据库程序解压在D:\wnmp\mysql目录下;
2、在D:\wnmp\mysql目录下找到my-default.ini文件,复制一份并重新命名为my.ini;
3、用记事本打开my.ini,并修改basedir和datadir两项。
basedir是mysql的安装目录,也就是刚才的解压出来的目录。
datadir顾名思义,是mysql数据存放的位置。注:这个目录在basedir下没有,但是不需要手动创建。
例如:
basedir = D:/wnmp/mysql
datadir = D:/wnmp/mysql/data
4、安装mysql服务
在有管理员权限的命令提示符下,将当前路径切换到mysql安装目录的bin目录下(或者mysqld命令使用全路径名),然后运行:
mysqld --install
如果提示服务安装成功,那就是服务安装完成了。不过现在还不能启动服务,看下面。
说明:当未指定mysql启动加载的配置文件my.ini时,mysql会到这些目录里面去找,先后顺序如下:
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
C:\windows\my.ini
C:\my.ini
D:\wnmp\mysql\my.ini
5、初始化mysql
运行
mysqld --initialize
来初始化mysql数据库。
6、启动mysql服务
net start mysql
执行这个命令后,如果显示”MySQL 服务正在启动 .MySQL 服务已经启动成功。“那就是成功了。可是root的密码是什么呢?我也不知道,不过我能修改它。
如果提示:系统找不到指定的文件。请查看mysql服务的属性,确认“常规--可执行文件的路径”的路径地址是否正确。一般是没有将当前路径切换到mysql\bin下造成的。
如果提示:MySQL服务无法启动,服务没有报告任何错误。一般来说是安装完服务,并没有初始化。
7、修改root密码
执行
net stop mysql
停掉mysql服务。然后执行
mysqld --skip-grant-tables
这个命令。新开一个命令行窗口,使用
mysql -u root
登录mysql之后运行下列sql命令:
use mysql;
select host,user,authentication_string,password_expired,password_last_changed from user;
update user set authentication_string=password('123456'),password_expired='N',password_last_changed=now() where user='root';
flush privileges;
退出mysql后,在进程管理器杀掉mysqld进程。OK!密码修改完成。
8、后序
重新启动mysql服务,通过验证密码登录。登录之后可以使用下面命令修改密码。
mysql> set password=password('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)
另,第7步修改密码的方法亦适用忘记mysql密码后的密码。
9、修改字符集
经过上面的操作,MySql5.7一般是可以使用的,但是你很可能会遇到一个乱码的问题。这个问题是mysql现在使用的字符集的问题。登录mysql后,使用show variables like "%char%";查看字符集也许是下面这个样子。
mysql> show variables like "%char%";
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\Program Files\mysql\share\charsets\ |
+--------------------------+----------------------------------------+
修改字符集需要修改my.ini文件。打开my.ini,在里面加入下面的内容。
# 配置客户端的字符集
default-character-set=utf8
# 配置服务的字符集
character-set-server=utf8
如果my.ini文件中没有客户端的部分,即没有”[mysql]“部分,那么需要在客户端的配置的前面加上[mysql],就像下面一样。
[mysql]
default-character-set=utf8 # 配置客户端字符集
[mysqld]
basedir = "D:\Program Files\mysql"
datadir = "D:\Program Files\mysql\data"
port = 3306
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-server=utf8 # 配置服务端字符集
好了,现在重新启动mysql服务,然后再查看字符集试试。
mysql> show variables like "%char%";
+--------------------------+----------------------------------------+
| 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 | D:\Program Files\mysql\share\charsets\ |
+--------------------------+----------------------------------------+
现在再去看看还有没有乱码吧。