mysql安装及问题处理

只介绍解压版的mysql安装方法:

    将文件解压之后可以将该文件夹改名,放到合适的位置(自行选择),这里我放在了E盘:

之后配置环境变量:

我的电脑->属性->高级->环境变量

选择PATH,在其后面添加: 你的mysql bin文件夹的路径 (如:E:\mysql-5.7.17-win32\bin )

PATH=.......;E:\mysql-5.7.17-win32\bin (注意是追加,不是覆盖,添加时注意前方要有分号没有的话自己添加一个英文分号;

配置完环境变量之后先别忙着启动mysql,我们还需要修改一下配置文件,默认的配置文件是在E:\mysql-5.7.17-win32\my-default.ini,或者自己建立一个my.ini文件,

在其中修改或添加配置(如图): 

[mysqld] 

basedir=E:\mysql-5.7.17-win32(mysql所在目录) 

datadir=E:\mysql-5.7.17-win32\data (mysql所在目录\data)

配置好之后选择将文件名改为 my.ini 或者复制一个副本改名为my.ini

以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),

输入:cd E:\mysql-5.7.17-win32\bin 进入mysql的bin文件夹

输入mysqld -install   安装mysql服务

安装成功后就要启动服务了,继续在cmd中输入:net start mysql,服务启动成功!

之后输入 mysql -u root -p 回车就登录了

出现的错误及解决:

Mysql 服务无法启动 服务没有报告任何错误

在执行 mysqld -install之后 运行mysqld  --initialize (标题问题所在,若没有init则不存在data目录,自然无法启动成功)

在安装mysql5.7版本时,经常会遇到mysql -u root -p直接回车登陆不上的情况,原因在于5.7版本在安装时自动给了一个随机密码,坑爹的是在init步骤的时候不像linux系统会给出命令行提示,需要手动在mysql目录下搜索*.err,以文本形式打开才能看到如下内容:

018-11-03 T15:15:10.033062Z 1 [Note] A temporary password is generated for root@localhost: >mso<k70mrWe

红色字母即为第一次的登陆密码。

mysql重置密码

重置 root 密码
在忘记 root 密码的情况下,可以进入 mysql 的安全模式,重置 root 密码。

1. 停止 MySQL 服务

打开命令提示符窗口,输入 net stop mysql 关闭 MySQL 服务。

1

2

3

C:\Users\Administrator>net stop mysql

MySQL57 服务正在停止..

MySQL57 服务已成功停止。

2. 切换到 bin 目录

在命令提示符窗口中,通过 cd 命令切换到 mysql 安装目录下的 bin 目录。

1

2

3

C:\Users\Administrator>E:

cd E:\mysql-5.7.17-win32\bin

C:\Program Files\MySQL\MySQL Server 5.7\bin>

3. 进入安全模式

在 bin 目录下输入 mysqld --skip-grant-tables ,跳过权限检查启动 mysql。

如果你配置了 my.ini 文件,则需要将其引入: mysqld --defaults-file="../my.ini" --skip-grant-tables

1

2

3

4

[mysqld]

basedir = "C:\ProgramData\MySQL\MySQL Server 5.7"

datadir = "C:\ProgramData\MySQL\MySQL Server 5.7\Data"

4. 重置账户密码

打开另一个命令提示符窗口(别关闭安全模式窗口),同样切换到 mysql \ bin 目录,输入 mysql 跳过权限验证连接数据库。

1

2

3

4

5

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql

Server version: 5.7.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

↑ 也可以指定连接参数 mysql -u <用户名> -p <密码> -h <连接地址> -P <端口号> -D <数据库>

执行 update mysql.user set authentication_string="" where user="root"; 重置 root 用户的密码(5.7 之前为 password 字段)。

1

2

3

4

5

6

7

8

9

10

11

12

mysql> update mysql.user set authentication_string="" where user="root";

Query OK, 1 row affected (0.00 sec)

mysql> select user,authentication_string from mysql.user\G

*************************** 1. row ***************************

         user: root

authentication_string:

*************************** 2. row ***************************

         user: mysql.sys

authentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

2 rows in set (0.00 sec)

↑ root 用户的 authentication_string 字段已经被清空了

5. 刷新权限表

执行 flush privileges; 命令刷新权限表,密码已经重置完成,输入 quit 退出。

1

2

3

4

mysql> flush privileges;

Query OK, 0 rows affected (0.02 sec)

mysql> quit

Bye

关闭所有命令提示符窗口,通过任务管理器结束 mysqld.exe 进程。重启 MySQL 服务,之后就可以直接登录 root 账号了。

修改 root 密码

出于安全考虑,root 密码不宜为空,所以需要在密码重置之后,再重新设置一个密码。

方法一:SET PASSWORD

SET PASSWORD FOR "username"=PASSWORD("new password");

以 root 身份登录 mysql,再使用 set password 命令修改密码:

1

2

mysql> set password for root@localhost = password("pswd");

Query OK, 0 rows affected, 1 warning (0.00 sec)

方法二:mysqladmin

mysqladmin -u "username" -p password "new password"

执行该命名之后会提示输入原密码,输入正确后即可修改。

1

2

3

4

5

C:\Program Files\MySQL\MySQL Server 5.7\bin> mysqladmin -u root -p password pswd

Enter password: ****

mysqladmin: [Warning] Using a password on the command line interface can be insecure.

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

方法三:UPDATE TABLE

UPDATE mysql.user SET authentication_string=PASSWORD("new password") WHERE user="username";

在重置 root 密码的同时,也可以设置默认密码。不过密码不能为明文,必须使用 password() 函数加密。

1

2

3

4

5

mysql> update mysql.user set authentication_string=password("pswd") where user="root";

Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

猜你喜欢

转载自blog.csdn.net/qq_41054313/article/details/83687444