由于有无法抗拒的理由,笔者又重新踏上安装mysql之旅。之前安装MySQL很顺利,这次安装出现了一系列问题,问题的源头是常见的ERROR 1045,最后终于解决了,下面是解决办法。如有不足之处请指出。
由于笔者使用安装的Windows系统,而且用的是MySQL5.7.18的免安装版所以在此只说明Windows平台下MySQL免安装版的问题解决办法。
Windows平台下:
ERROR 1045错误具体显示为
ERROR 1045:Access denied for user 'root'@'localhost' (using password:YES)
解决方法
1.在MySQL安装路径下找到my.ini文件,在[mysqld]下添加
skip-grant-tables
添加后显示为
[client]
port=3306
default-character-set=utf8
[mysqld]
skip-grant-tables
port=3306
character_set_server=utf8
basedir=D:\learn\mysql-5.7.18-winx64
datadir=D:\learn\mysql-5.7.18-winx64\data
[WinMySQLAdmin]
%MYSQL_HOME%\bin\mysqld.exe
表示跳过密码选项。
2.重新启动mysql服务;
这里有两种办法:
(1) 用管理员权限进入windows命令行,输入
net stop mysql
再输入
net start mysql
即可。
(2) 右击我的电脑>管理>服务和应用程序>服务,找到MySQL服务,点击重新启动即可。如图所示。
3.在命令行内输入
mysql -u root -p
后Enter Password:直接回车即可进入mysql。
mysql>use mysql;
mysql>update user SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
4.然而在这里又出现ERROR 1054错误:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
后来发现果然是用户表没有password列,取而代之的是authentication_string列,所以此处应该输入
mysql>update user set authentication_string = password('MyNewPassword') where user='root';
提示成功后输入
msyql>FLUSH PRIVILEGES;
最后退出,输入
mysql>quit
5.删除my.ini文件中之前加入的skip-grant-tables,重新启动mysql服务。
6.在输入相关命令便可进入mysql。
但是此时又出现ERROR 1820错误:
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
这种问题的解决办法为
mysql>SET PASSWORD = PASSWORD('MyNewPassword');
这样便可解决。
这样安装mysql免安装版的一系列问题,让笔者搞了半天,记下来方便你我他,哈哈~