下载mysql社区版
开始安装
-
我安装的win7+Windows版
直接点开安装文件,一路next到finish即可. -
按win+r打开dos窗口
-
配置环境变量path路径前加D:\mysql-8.0.14-winx64\bin;
-
创建并配置初始化的my.ini文件
[my.ini]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:\software\mysql\mysql-8.0.11-winx64 # 切记此处一定要用双斜杠\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
# 设置mysql数据库的数据的存放目录
datadir=E:\software\mysql\mysql-8.0.11-winx64\Data # 此处同上
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8 -
在/bin目录下以管理员身份执行 mysqld --initialize --console 命令
-
在/bin目录下以管理员身份执行 mysqld install 命令
后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8。 -
安装完成之后,就可以通过命令net start mysql启动MySQL的服务了。通过命令net stop mysql停止服务。通过命令sc delete MySQL/mysqld -remove卸载 MySQL 服务
-
在/bin目录下以管理员身份执行 mysql -uroot -p 命令,此时提示填写登录密码,填入刚才的密码即可, 此处为mysql非mysqld
-
登入后通过命令 ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY ‘123456Mm…aaa’ 来修改密码
-
到此,安装部署就完成了。官方说测试速度MySQL8比5快两倍
-
看一下数据库 show databases | use mysql | show tables
-
创建用户:
CREATE USER user@’%’ IDENTIFIED WITH mysql_native_password BY '123456Mm…aaa’
#(需要注意:mysql8.0加密方式修改了)
#检查用户
select user, host, plugin, authentication_string from user\G -
授权远程数据库
#授权所有权限
GRANT ALL PRIVILEGES ON . TO ‘xxh’@’%'
#授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON . TO ‘xxh’@’%' -
查看用户权限
show grants for ‘xxh’@’%' -
mysql 快捷键
1.1. ctrl+q 打开查询窗口
1.2. ctrl+/ 注释sql语句
1.3. ctrl+shift +/ 解除注释
1.4. ctrl+r 运行查询窗口的sql语句
1.5. ctrl+shift+r 只运行选中的sql语句
1.6. F6 打开一个MySQL命令行窗口
1.7. ctrl+l 删除一行
1.8. ctrl+n 打开一个新的查询窗口
1.9. ctrl+w 关闭一个查询窗口
参考至: https://www.cnblogs.com/laumians-notes/p/9069498.html
密码重置
1.打开命令窗口cmd,输入命令:net stop mysql,停止MySQL服务,
2.开启跳过密码验证登录的MySQL服务
输入命令
mysqld --console --skip-grant-tables --shared-memory
3.再打开一个新的cmd,无密码登录MySQL,输入登录命令:mysql -u root -p
-
密码置为空,命令如下:
use mysql
update user set authentication_string=’’ where user=‘root’;
5.退出mysql,执行命令:quit
-
关闭以-console --skip-grant-tables --shared-memory 启动的MySQL服务,
-
打开命令框,输入:net start mysql 启动MySQL服务。
8.步骤4密码已经置空,所以无密码状态登录MySQL,输入登录命令:mysql -u root -p
9.利用上一篇博客中更改密码的命令,成功修改密码,如下图:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;
10.验证更改后密码正确登录
输入quit,退出当前登录,输入登录命令:mysql -u root -p
输入密码,成功登录,到此,重置密码结束。
远程授权登录常用命令
use mysql;
select host, user from user;
SET SQL_SAFE_UPDATES = 0;
update user set host = ‘%’ where user = ‘root’;
SET SQL_SAFE_UPDATES = 1;
FLUSH PRIVILEGES;
grant all privileges on . to ‘root’@’%’ identified by ‘123456abc…’;
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘123456abc…’ PASSWORD EXPIRE NEVER
执行正确, 但Navicat连接一直报错1045, 可能使Navicat的密码编码和MySQL的不一致无法匹配
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER
正确执行, 连接成功
grant all on . to ‘root’@’%’ identified by ‘123456abc…’ with grant option;
一直错误, MySQL8.0的认证和授权分离, 因此identified后面的内容识别为语法不正确
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’
正确执行
exit;
service mysqld restart;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123’;
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456abc…’;