重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果你有root权限的话,可以重新修改mysql的密码步骤如下:
创新互联专注于开封企业网站建设,成都响应式网站建设公司,成都做商城网站。开封网站建设公司,为开封等地区提供建站服务。全流程按需网站制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
1、修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行 skip-grant-tables
2、保存配置文件后,重启MySQL服务 service mysqld restart
3、再次进入MySQL命令行 mysql -u root -p,输入密码时直接回车,就会进入MySQL数据库了,这个时候按照常规流程修改root密码即可。一般输入:mysql_secure_installation,然后根据提示输入新密码。
密码修改完毕后,再按照步骤1中的流程,删掉配置文件中新增加的那行,并且重启MySQL服务,新密码就生效了。
bug
win安装完mysql,不知道临时密码怎么办,如何获取临时密码?密码是多少?mysql如何修改密码?解决方法来了。

掉色的熊猫
原创
关注
9点赞·4810人阅读
其实,当你的mysql安装完以后,临时密码肯定出现过,只是你没有注意到,又或者第一次你的命令没有加–console让他打印出来,后来你加了他也不打印了。
来看看解决方法。
1.首先,当我们输入mysqld --inititalize --console时,根本无法在下面的信息中找到临时密码在那里。如果你报的是这个错误,那我猜你安装的过程一定不是很顺利。
又或者一开的命令中没有加上**–consol**。
其实要解决很简单。
有一种做法就是先把mysql设置成免密登录的方式。
通过图形化界面工具设置,或者命令行都可以做到。
大概的思路就是,你打开免密登录,然后登录root账号,把密码改掉,然后再退出把免密登录关掉(不关掉不安全)。
2.首先,你把你现在装好的数据库删除掉。
命令行输入sc delete mysql
删除之后,再删除MySQL下的data目录,这里值得注意的是,如果你的Mysql是8.0的,你就把data目录整个都删了,他会自己新建的。
如果你是5.7的,那就把data里面的文件清空就可以了,不要删目录。删除之后,再从头来一次就可以啦。
1.输入:mysqld --initialize --console,记得命令不要漏写–console,你不写他还是照样装,但就是不会给你打印,看你怎么看临时密码。
可以看见,临时密码出来了。就是sxvdB=L,7BW
1.下载、解压程序包;
2.设置好存放目录(不要有中文);
3.在系统变量中添加path(mysql程序的bin目录);
4.以管理员身份运行cmd,初始化①无密码:mysqld --initialize-insecure 登陆时用mysql -u root即可
②有密码(初始密码在自动生成的data目录下.err文件中):mysqld --initialize 登陆时用mysql -u root -p
5.安装:mysqld --install
6.启动服务:net start mysql
7.登陆:mysql -u root(无密码),mysql -u root -p 回车输入密码
8.退出:exit;
9.停止服务:net stop mysql
10.移除服务:mysqld --remove
说明:如重新安装需要停止服务,移除服务,删除data目录
11.配置文件my.ini(用记事本创建,修改文件名即可):
```mysql
[mysqld]
#设置时区为东八区,此项设置后,在连接MySQL的时候可以不用每次都手动设置时区
default-time-zone = '+8:00'
#解决导入脚本是function报错
log_bin_trust_function_creators=1
# 设置3308端口
port=3308
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证,此认证为1代加密认证。如果使用2代加密的话,使用可视化工具sqlyog会无法登陆!
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口 mysql8binmysql 直接登录
# mysql -hlocalhost -uroot -P3308
port=3308
user=root
password= root
default-character-set=utf8
```
12.退出mysql,停止服务,将my.ini文件放到程序根目录(bin,data同级目录)
13.以管理员身份运行cmd,直接输入mysql,回车即可进入mysql
14.启动和停止mysql服务必须以管理员身份运行命令
只能在知道 root 密码的前提下去查看其它用户的密码(而且还是加密的):
mysql select Host,user,password from mysql.user\G;
在不知道 root 密码的情况下只能是修改配置文件 my.cnf 跳过密码登录:
[root@localhost /]# vim /etc/my.cnf
在 [mysqld] 段中加上:skip-grant-tables
然后登录数据库时就不需要密码了
登录进去之后使用 mysql 命令设置 root 密码
因为你localhost 后面对应的密码是空,所以不输入密码也可以,解决方法: 删掉localhost 单独给localhost设置密码
1、登陆mysql
mysql -uroot -p
2、创建无密码用户
mysql create user gateway@'localhost' identified by '';
3、授权
mysql grant all privileges on *.* to gateway@'localhost';
或者
mysql grant all privileges on db01.* to gateway@'localhost';
4、mysql -ugateway -p回车即可登陆
Ubuntu在Mysql 8.0在线安装成功后(sudo apt install),默认的root用户密码为空,默认监听本机,只能在本机登录,直接命令`mysql`即可登录 。
Centos安装完成后,可能需要密码,密码位置在
如果没有密码,或者忘记密码请在配置文件加入 skip-grant-tables ,ubuntu配置文件在 /etc/mysql/ 路径下。
注: 跳过密码后,登录进入后必须先 flush privileges 才能修改密码。
1:第一种方式
直接在用Linux命令 mysqladmin 修改。
2:第二种方式
登录mysql 更改密码
显示ok成功。
注:由于我这里没有默认安装validate_password插件,所以直接修改成功,有些默认安装的是修改不成功的,因为太简单的密码,不符合密码规则,会报错如下: ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
3:关于validate_password插件
validate_password是一款密码规则插件,查看密码规则命令:
安装完成后,查看显示如下:
参数说明:
当指定密码规则后,如果嫌麻烦,直接更改密码规则即可,如偏要设置123456简单密码。
虽然改了密码,但是发现root登录仍无需登录密码,或者加参数-p输入密码时,任何密码都可以进入。
原因:查看用户插件信息
显示root插件为auth_socket,这种插件无需密码,所以设置任何密码都无效。
更改插件为 mysql_native_password 或者 caching_sha2_password
更改完成后,需重新设置root密码生效,修改方法同上。修改后,登录需要输入正确密码
注:为了提供更安全的密码加密,MySQL8.0的首选默认密码认证插件是caching_sha2_password,而不是mysql_native_password,根据自己需求选择插件
关于auth_socket插件
这种插件验证方式有以下特点:
auth_socket 这个插件因为有这些特点,它很适合我们在系统投产前进行安装调试的时候使用,而且也有相当的安全性,因为系统投产前通常经常同时使用操作系统的 root 用户和 MySQL 的 root 用户。当我们在系统投产后,操作系统的 root 用户和 MySQL 的 root 用户就不能随便使用了,这时可以换成其它的验证方式,可以使用下面的命令进行切换: