1. 程式人生 > >MySql報錯程式碼1251和1064

MySql報錯程式碼1251和1064

今天下了個 MySQL8.0,發現Navicat連線不上,總是報錯1251;

原因是MySQL8.0版本的加密方式和MySQL5.0的不一樣,連線會報錯。

試了很多種方法,終於找到一種可以實現的:

  更改加密方式

1.先通過命令列進入mysql的root賬戶:?
1PS C:\Windows\system32> mysql -uroot -p

再輸入root的密碼:

?
12345678910Enter password: ******Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 18Server version: 8.0.11 MySQL Community Server - GPL
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

2.更改加密方式:

?
12mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;Query OK, 0 rows affected (0.10 sec)

3.更改密碼:該例子中 123為新密碼

?
12mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';Query OK, 0 rows affected (0.35 sec)

4.重新整理:

?
12mysql> FLUSH PRIVILEGES
;Query OK, 0 rows affected (0.28 sec)

// 如果報錯ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@’%’:

則是遠端訪問許可權不正確,先選擇資料庫,檢視一下再更改:

?
12345678910111213mysql> use mysql;Database changedmysql> select user,host from user;+------------------+-----------+| user             | host      |+------------------+-----------+| mysql.infoschema | localhost || mysql.session    | localhost || mysql.sys        | localhost || root             | localhost |+------------------+-----------+5 rows in set (0.00 sec)

小編是IT實習生,在編寫的過程中還遇到了Mysql1064錯誤,這裡重點強調一下,一定一定一定要注意反引號和單引號的使用,不然會頻繁報1064錯誤,由於版本不同我們可以使用不同的方法,單引號不行你就用反引號。