1.data目录不见了
在进行my-default.ini配置的时候
(需要配置 # basedir = C:/Program Files/MySQL/MySQL Server 5.7.11
# datadir = C:/Program Files/MySQL/MySQL Server 5.7.11/data)
细心的同学会发现,/data这个目录不存在,但是这个data目录可不是我们手动创建的,根据官方指南
C:/>bin/mysqld --initialize
C:/>bin/mysqld --initialize-insecure
cmd中输入这两个代码中的一个就可以自动在对应的目录下生成啦
(前提是你的path配置正确,比如mysql的路径,如果提示net命令不是内部命令,就在path中增加“C:/Windows/System32”即可)
2.随机生成了一个random string 作为密码
在没有启动前,root的密码是ABC123xyz
随机生成的密码在日志文件中可以查看,没错就是在initialize命令下生成的那个data文件
使用记事本打开Acer.err
找到
“2016-02-12T15:35:00.026880Z 1 [Note] A temporary password is generated for root@localhost: Ux<<lCbrr8&d”
Ux<<lCbrr8&d
这个就是我们要找的密码了
登陆成功:
3.修改密码的指令
果然新版本中修改密码的指令也不是那么好找的。。
在成功连接之后,使用sql语句修改,以往未登录状态下的修改方法已经不能使用啦~~
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'
修改成功:
本文转自 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是 /var/log/mysqld.log 。
一般可通过 log_error 设置
可通过 # grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码
其中 waQ,qR%be2(5 就是密码了
用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
如果只是修改为一个简单的密码,会报以下错误:
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
首先,修改 validate_password_policy 参数的值
这样,判断密码的标准就基于密码的长度了。这个由 validate_password_length 参数来决定。
validate_password_length 参数默认为8,它有最小值的限制,最小值为:
这些参数,默认值均为1,所以 validate_password_length 最小值为4,如果你显性指定 validate_password_length 的值小于4,尽管不会报错,但 validate_password_length 的值将设为4。如下所示:
如果修改了 validate_password_number_count , validate_password_special_char_count , validate_password_mixed_case_count 中任何一个值,则 validate_password_length 将进行动态修改。
当然,前提是 validate_password 插件必须已经安装,MySQL5.7是默认安装的。
那么如何验证 validate_password 插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。
初始化数据库
# 初始化数据库, 确保 /data/mysql 目录是mysql 可写的。
/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
启动服务
/usr/local/mysql57/support-files/mysql.server start #启动mysql 服务器
登录数据库
注意:初始化时随机生成了密码,可以去/mysql下的mysql.log 里查看
【root】# cat mysql.log | grep password
2021-05-12T06:28:43.374399Z 1 [Note] A temporary password is generated for root@localhost: dHuSP!y.3ef
#临时密码登录数据库 (会提示要你修改密码)《Linux就该这么学》 一起学习
/usr/local/mysql57/bin/mysql -uroot -p "dHuSP!y.3ef"
修改密码方法:(建议方法二)
方法一:
mysql>update mysql.user set authentication_string=password("新密码")
mysql>flush privileges
方法二:
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'
mysql>flush privileges
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)