如果上面没有成功,而出现了这样的问题的话:
Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE)
这是因为用户密码的问题,所以需要修改。
怎么修改? 这里我只给出了一种方法,其他方法的话,可以去百度的。
1、首先是关闭mysql数据库:
pi@orangepilite:~$ sudo /etc/init.d/mysql stop
2、然后就是跳过mysql的注册表的语句:
pi@orangepilite:~$ sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
如果运行了这条命令出现了以下这个问题的话:
2017-10-16T06:08:13.888547Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-10-16T06:08:13.904935Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
错误原因是:mysql 用户没有操作/var/run目录的权限,所以pid文件无法创建,导致登陆时无法建立 进程信息文件,登陆进程就无法开启,自然无法登陆。而且因为/var/run中并没有mysqld这个文件夹,所以需要去创建一个;
解决办法就是:
pi@orangepilite:~$ sudo mkdir -p /var/run/mysqld
pi@orangepilite:~$ sudo chown mysql:mysql /var/run/mysqld
然后再执行:
pi@orangepilite:~$ sudo /usr/bin/mysqld_safe --skip-grant-tables &
注意,不要关闭这个shell窗口。
3、然后就是打开另一个shell窗口,进行密码的修改:
pi@orangepilite:~$ mysql
mysql>use mysql
mysql>update user set password=password("123456") where user="root";
如果输入语句出现了一下的问题:
ERROR 1054 (42S22): Unknown column ''password'' in ''field list''
错误原因是:由于版本的不同,所以mysql数据库下已经没有password这个字段了,password字段改成了authentication_string。
所以要改过来:
mysql> update mysql.user set authentication_string=PASSWORD('password') where User='root';
这其中的password就是你要设置的密码;
最后别忘记了要:
mysql>flush privileges;
这相当于是重新加载一下mysql权限,这一步必须有。
4、最后就可以退出了mysql数据库了:
mysql>exit;
这下就可以本地登录数据库啦
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)