Windows MySQL服务安装及问题解决方案
安装及配置
步骤一:官网下网MySQL安装包
【MySQL安装包】链接: https://downloads.mysql.com/archives/community/
下载完后,在一个非中文(无空格、特殊字符)目录下进行解压
步骤二:设置环境变量
步骤:右键"开始"->“高级系统设置”->“高级”->“环境变量”->“系统变量”->“path”
新建环境变量:
变量名:MYSQL_HOME
变量值:为MySQL解压的根目录
在"path"中,添加环境变量
%MYSQL_HOME%\bin
步骤仨:配置MySQL,ini配置文件
在解压后的根目录下(即D:/MySQL/mysql-8.0.33-winx64),创建my.ini文件,并将**“basedir"和"datadir”**修改成本地的路径
**注意:**需要保存为ANSI编码----使用记事本打开,保存/另存为,选择ANSI编码
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\MySQL\mysql-8.0.33-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\MySQL\mysql-8.0.33-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=innodb
步骤四:初始化MySQL
搜索CMD,以管理员身份运行,执行以下命令
mysqld --initialize-insecure
操作成功后,会在MySQL根目录生成一个data文件夹,里面存放的是数据信息
步骤五:开启MySQL服务
win+R:输入"services.msc"
进行"服务"
点击启动或者重新启动
步骤六:测试是否安装成功
以管理员身份运行命令行,输入
mysql -uroot
我这是安装过了,修改后密码了,所有让填写密码,如果是首次安装,输入 “mysql -uroot”按回车可直接显示"welcome…"信息
步骤七:修改密码
//第一个root为用户名,第二个password为密码
alter user 'root'@'localhost' identified by 'password';
之后再用"mysql -u root -p"命令登录,就会让输入密码,登录成功会显示"welcome…"内容。
问题解决方案
修改密码
在知道密码的情况下修改:
fun1:
打开命令行,执行以下语句
mysql -u root -p
按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:
Enter password:
若密码存在, 输入密码登录, 不存在则直接按回车登录。
登录成功后你将会看到 Welcome… 的提示语。
修改密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
出现Query OK, 0 rows affected (0.36 sec),表示修改成功。
fun2:
通过mysqladmin修改密码
root 用户可以使用 mysqladmin 命令来修改密码,mysqladmin 的语法格式如下:
mysqladmin -u username -h hostname -p password "newpwd"
语法参数说明如下:
usermame 指需要修改密码的用户名称,在这里指定为 root 用户;
hostname 指需要修改密码的用户主机名,该参数可以不写,默认是 localhost;
password 为关键字,而不是指旧密码;
newpwd 为新设置的密码,必须用双引号括起来。如果使用单引号会引发错误,可能会造成修改后的密码不是你想要的。
提示 :由于密码将以明文形式发送到服务器,请使用ssl连接以确保密码安全。
修改成功后,有时有提示信息,提示的信息可以忽略。
在不知道密码的情况下修改:
fun3
- 以超级管理员打开cmd,关闭mysql服务
net stop mysql
- 跳过权限验证登录mysql
mysqld --shared-memory --skip-grant-tables
- 在新的窗口中登录mysql
使用命令:
mysql -u root -p
无需输入密码,直接回车即可。
- 切换到mysql,将密码置空。
use mysql;
update user set authentication_string='' where user='root';
然后刷新权限:
flush privileges;
- 设置加密规则并更新新密码,授权(直接复制这些SQL语句你的密码会更新为123456)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
alter user 'root'@'localhost' identified by '123456';
grant all privileges on *.* to "root"@'localhost';
flush privileges;
- 设置成功后,重启mysql服务,使用新密码登录
net start mysql
如果修改不成功,附一个链接,可按照这个链接进行设置:
链接: https://blog.csdn.net/linmengmeng_1314/article/details/109484951
8.0版本之后加密规则不同,navicat无法链接到MySQL数据库
用navicat进行连接MySql服务器,报错:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
1.问题原因
通过相关问题查阅,发现是由于navicat版本的问题造成连接失败。mysql8
之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
MySql查看版本号-1
LITING:~ liting$ mysql -uroot -p // 进入mysql
Enter password: //输入mysql密码,如下提示表示登录成功
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 8.0.14 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
MySql查看版本号-2(可以进入mysql后通过mysql命令查看)
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.14 |
+-----------+
1 row in set (0.00 sec)
2.解决问题
1.进入mysql
LITING:~ liting$ mysql -uroot -p
Enter password: // mysql密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 26
Server version: 8.0.14 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
2.输入命令修改加密规则
1.ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; password替换为mysql连接密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678' PASSWORD EXPIRE NEVER;
2.ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; password为修改的新密码。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
3.刷新权限,使修改生效。
FLUSH PRIVILEGES;
4.查看表中相关信息,确认修改是否真正生效
mysql> use mysql; //先使用命令 use mysql
Database changed
mysql> select user,host,plugin from user where user='root'; // 在输入该命令
+------+-----------+-----------------------+
| user | host | plugin |
+------+-----------+-----------------------+
| root | localhost | mysql_native_password |
+------+-----------+-----------------------+
1 row in set (0.00 sec)
如上,密码校验规则已经修改成功
5.通过navicat连接测试
链接: https://blog.csdn.net/weixin_43111077/article/details/108811949
如何让局域网内的其他电脑访问本机的mysql
第一步:先用其他电脑ping本机,看能否ping通
第二步:开放mysql的权限
打开mysql的命令窗口,修改访问权限为all,即set host=‘%’ where host= ‘localhost’
第三步:刷新权限
让赋予的权限立即生效:
flush privileges;
不出意外的话重启一下自己的mysql服务,别的电脑就能连上自己的库了,如果不行试下下面的命令
GRANT ALL PRIVILEGES ON *.* TO root @'%' IDENTIFIED BY "mypassword";
FLUSH PRIVILEGES;
% 表示所有的IP都能访问,也可以修改为专属的
mypassword 为连接密码 需要修改为你自己的
MySQL命令行使用
链接: https://blog.csdn.net/qq_43003203/article/details/114461457