1. 程式人生 > 其它 >安裝mysql 時候 出現 --initialize specified but the data directory has files in it. Aborting.

安裝mysql 時候 出現 --initialize specified but the data directory has files in it. Aborting.

1 把mysql 下面的data目錄清空即可

1、安裝包下載。

下載地址:https://dev.mysql.com/downloads/mysql/

點選下載之後,可以選擇註冊Oracle賬號,也可以跳過直接下載。

下載完成後,選擇一個磁碟內放置並解壓。

2020年2月14日,mysql官網進不去了,好吧~那就來個映象,總沒問題了吧。如果官網龜速下載,建議使用下面映象巨快。相對的~

Mysql國內映象:http://mirrors.sohu.com/mysql/MySQL-8.0/

下載完成之後,解壓即可!

2 安裝教程

(1)配置環境變數

變數名:MYSQL_HOME

變數值:E:\mysql-5.7.20-winx64

(2)生成data檔案

以管理員身份執行cmd

進入E:\python\mysql\mysql-8.0.12-winx64\bin>下

執行命令:mysqld --initialize-insecure --user=mysql 在E:\python\mysql\mysql-8.0.12-winx64\bin目錄下生成data目錄

(3) 安裝MySQL

繼續執行命令:mysqld -install

(4)啟動服務

繼續執行命令:net start MySQL

(5)登入MySQL

登入mysql:(因為之前沒設定密碼,所以密碼為空,不用輸入密碼,直接回車即可)

E:\python\mysql\mysql-8.0.12-winx64\bin>mysql -u root -p

(6)查詢使用者密碼

查詢使用者密碼命令:mysql> select host,user,authentication_stringfrom mysql.user;

(7)設定(或修改)root使用者密碼

mysql>use mysql

提別注意:下面這個修改密碼的方式不正確,可能是因為版本問題。最近解決了。

mysql>update mysql.user set authentication_string=("123456") where user="root";

Query OK, 1 row affected, 1 warning (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 1

解決方案如下:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

mysql> flush privileges;

#作用:相當於儲存,執行此命令後,設定才生效,若不執行,還是之前的密碼不變

Query OK, 0 rows affected (0.01 sec)

(8)退出

mysql> quit

Bye

(9)再次登入

3、解決問題

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

關於修改密碼再次登入出現ERROR的解決方案:

首先問題出現的原因在於可能是因為版本不同,命令有所差異。個人認為,其實無所謂了,最終問題解決了就是了。

如果你是按照上面的完整教程安裝出現這種問題的解決方案:

1、所有東西都刪除,然後重灌,按照上面教程再來一遍;部分內容有更正。特別注意!

2、如果你之前裝了,報錯之後就一直放在那裡,現在請嚴格按照下面步驟進行:

  1、開啟cmd,切換到mysql的bin目錄下,輸入命令net stop mysql,停止mysql服務;

  2、開啟mysql的安裝目錄,找到data資料夾,將其刪除!

  3、回到cmd命令視窗,輸入mysqld -remove

  4、接下來按照上面教程,從第二步生成data檔案開始執行,一定要注意修改密碼那裡:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

然後就可以愉快使用密碼登入mysql了。

https://www.cnblogs.com/zhangkanghui/p/9613844.html