本地升级Mysql提示1055、1862错误以及2054 无法登录 MySQL 服务器,此次系统是在windows系统下进行操作的。
版本:5.0升级为5.7.x。
工具:phpstudy
数据库下载-> https://downloads.mysql.com/archives/community/
下载后解压到:D:phpStudyPHPTutorialMySQL
复制phpstudy自带的mysql目录下的my.ini文件到新版本目录下,修改为:
[client]
port=3306
[mysql]
default-character-set=utf8mb4
[mysqld]
port=3306
basedir="D:/phpStudy/PHPTutorial/MySQL/"
datadir="D:/phpStudy/PHPTutorial/MySQL/data/"
character-set-server=utf8mb4
default-storage-engine=InnoDB
在D:phpStudyPHPTutorialMySQLin目录下 shift + 鼠标右键 打开powershell窗口 输入 mysqld —initialize 如果提示报错 就输入 .mysqld —initialize
到了这一步基本己用好了,重启phpstudy服务,这个时候密码就不是root了,在D:phpStudyPHPTutorialMySQLdata下找到一个xxx.err的文件,一般都是按你的电脑名来命名的,如你的的电脑是 【香港加油】 那么就是 【香港加油.err】,为什么要找这个文件,因为我们的初始密码就在哪里;
找到temporary password is generated for root@localhost: ig>o7hP0M=ak,ig>o7hP0M=ak就是初始密码,账号还是root。
好我们用phpMyAdmin去登录一下,哦吼 提示 #1862 无法登录 MySQL 服务器。
这个问题不大,不慌,我们去bin目录下 shift + 鼠标右键 打开powershell窗口
1.登录mysql:mysql -u root -p 回车输入初始密码
2.尝试是否报1820错误,执行语句:select 1;
将会得到一个错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> set password=password(‘root’);
3.设置新密码:set password=password(‘root’);
4.再次尝试是否报1820错误,执行语句:select 1;
如果得到下面的提示代表成功了,就可以去登录了
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
现在我去用数据库图形化工具登录一下,糟糕又报错了 提示SQL执行错误 #1055 巴拉巴拉的,这个也不用慌,跟着我们一起来。
在D:phpStudyPHPTutorialMySQLin目录下 shift + 鼠标右键 打开powershell窗口
登录后输入select @@sql_mode。不出意外,得出的结果如下:
还记得之前的my.ini文件吧,在文件里添加:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
到了这一步,我们就可以正常使用了。