在刚安装完成msyql之后,由于是在vmware的Linux系统中安装的MySQL,所以会自动为我们生成密码,此时需要使用指令或者查看日志文件找到默认的密码,系统密码如下图:

grep 'password' /var/log/mysqld.log |head -n1

在这里插入图片描述
或者直接查看日志文件 :

vi /var/log/mysqld.log

在这里插入图片描述
然后使用MySQL的登录指令登录:

mysql -uroot -p查看到的密码

可以查看到,MySQL为我生成的密码中带有左括号“(”,由于Linux5中对左括号敏感,所以会有如下报错信息:

-bash: syntax error near unexpected token '('

报错原因主要就是因为密码中包含左括号,楼主此时也百度了一些帖子,例如:

tables=\(AUDIT_RESULT,ORGANIZATION_CENTER\)
tables="(AUDIT_RESULT,ORGANIZATION_CENTER)"

两种解决问题的思路一个是通过转译(,另一个是通过对密码内容添加双引号,都没用,下面来看下我的解决方法

解决:

先进入MySQL的配置文件中添加:skip-grant-tables 作用是忽略登录密码
进入指令:vi /etc/my.cnf
在这里插入图片描述
重启MySQL

systemctl restart mysqld

登录MySQL:

mysql -uroot -p

就可以直接进入了
使用mysql数据库

use mysql

刷新数据库表:

 flush privileges;

将数据库中user表中root账号的密码修改:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

如果看到OK的提示那就成功了
再次进入 /etc/my.cnf 配置文件中修改mysql为需要密码登录

vi /etc/my.cnf

重启MySQL,使其生效

systemctl restart mysqld

登录:

mysql -uroot -p新密码

******************* 2019110更新 *****************

可以使用指令 mysql -uroot -p 先进入到输入密码的界面,再输入带有特殊字符的密码同样可以进入列表

搞定

Logo

更多推荐