我这里只列出几个 可能 不常见的错误,方便以后提示自己,也方便别人。
1、首先我已经成功安装mysql5.7,在/etc/init.d下有mysqld
2、接下来是启动mysql服务, service mysqld restart -> ok
3、用root登陆,因为我对linux还不是非常熟悉,或许有人跟我一样在想,这个mysql账户怎么来??
那不管怎么样,我先用root登陆,mysql -uroot -p <回车
输入密码 <回车
接下来肯定是个错误啦,我的是:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor
4、那么就去百度,我参考以下操作:
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
5、在我执行到UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; 就开始出问题了,问题是:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
.
6、用ERROR 1054 (42S22): Unknown column 'password' in 'field list'
.去百度,但是好像没啥结果,去google,得到的答案:
简单的讲就是说在mysql.user表里没有字段password,我也查看了下这个表,的确没有,那么按照连接教程
的做法是:
update user set authentication_string=password('123456') where user='root';
我照做了,那么接下来引发新的问题:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
7、如之奈何,百度之~, 然后找了很久的方法又得到一个新的问题:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
8、这就是大概的过程,那么不在墨迹了,最后的解决办法是:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';
具体的操作就是:
a、因为上面已经把root的密码设置为了123456,所以先登录mysql
b、在mysql里执行 use mysql; 会提示上面的错误,,,ok
c、执行上面的alter语句,
d、成功
e、ok,现在不有再有上面的错误提示了,你可以正常操作mysql了。但是新的问题来了,:
'*0D3CED9BEC10A777AEC23CCC353A8C08A633045E' 是什么鬼??? 这里的这个密码明文是:abc
,但是怎么修改,我现在还不知道,我先把解决方案放上来~~!
--------
接下来是validate_password的安装和卸载!!!
因为mysql默认自动启用validate_password的问题,导致我浪费 了不少时间,我要是个富二代,指不定把电脑都砸了!!!
现在说说validate_password 的卸载和安装。
安装:INSTALL PLUGIN validate_password SONAME 'validate_password.so';
卸载:UNINSTALL PLUGIN validate_password ;
在my.conf文件中,如果写上下面几句并且去掉注释,那么UNINSTALL PLUGIN validate_password;就执行失败,导致无法卸载。
下面几句是启用validate_password 并且保护validate_password 防止卸载的。
# plugin-load=validate_password.so
# validate-password=FORCE_PLUS_PERMANENT
# validate_password_policy=2
现在执行:
mysql> SET PASSWORD FOR root=PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
可以是可以了,但是感觉没有用,密码还是abc,没法改变。
下面用:
[root@oiooooio etc]# mysqladmin -u root -p password
命令来修改密码,就可以了,~~~
至此终于tmd结束了