錯(cuò)誤原因:在上述文件中愿伴,ERROR錯(cuò)誤提示表明在執(zhí)行mysqld --initialize時(shí)柬帕,需要data目錄為空产场,因此清空配置文件指定的數(shù)據(jù)目錄data,重新執(zhí)行
錯(cuò)誤解決參考:https://blog.csdn.net/lk142500/article/details/83049080
1 簡(jiǎn)介
1.1 MySQL數(shù)據(jù)庫(kù)
MySQL 是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)拗慨,由瑞典 MySQL AB 公司開發(fā)廓八,目前屬于 Oracle 公司。MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng)胆描,關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中瘫想,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性昌讲。
? MySQL 是開源的,所以你不需要支付額外的費(fèi)用减噪。
? MySQL 支持大型的數(shù)據(jù)庫(kù)短绸。可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)筹裕。
? MySQL 使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語(yǔ)言形式醋闭。
? MySQL 可以運(yùn)行于多個(gè)系統(tǒng)上,并且支持多種語(yǔ)言朝卒。這些編程語(yǔ)言包括C证逻、C++、Python抗斤、Java囚企、Perl丈咐、PHP、Eiffel龙宏、Ruby和Tcl等棵逊。
? MySQL 對(duì)PHP有很好的支持,PHP是目前最流行的Web開發(fā)語(yǔ)言银酗。
? MySQL 支持大型數(shù)據(jù)庫(kù)辆影,支持5000萬(wàn)條記錄的數(shù)據(jù)倉(cāng)庫(kù),32位系統(tǒng)表文件最大可支持4GB黍特,64位系統(tǒng)支持最大的表文件為8TB蛙讥。
? MySQL 是可以定制的,采用了GPL協(xié)議灭衷,你可以修改源碼來(lái)開發(fā)自己的 MySQL 系統(tǒng)键菱。
1.2 什么是數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)今布,
每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)或多個(gè)不同的API用于創(chuàng)建经备,訪問(wèn),管理部默,搜索和復(fù)制所保存的數(shù)據(jù)侵蒙。
我們也可以將數(shù)據(jù)存儲(chǔ)在文件中,但是在文件中讀寫數(shù)據(jù)速度相對(duì)較慢傅蹂。
所以纷闺,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)來(lái)存儲(chǔ)和管理的大數(shù)據(jù)量。所謂的關(guān)系型數(shù)據(jù)庫(kù)份蝴,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù)犁功,借助于集合代數(shù)等數(shù)學(xué)概念和方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
RDBMS即關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(Relational Database Management System)的特點(diǎn):
? 1.數(shù)據(jù)以表格的形式出現(xiàn)
? 2.每行為各種記錄名稱
? 3.每列為記錄名稱所對(duì)應(yīng)的數(shù)據(jù)域
? 4.許多的行和列組成一張表單
? 5.若干的表單組成database
2 材料
mysql-8.0.11-winx64.zip
Windows系統(tǒng)
3 安裝和配置過(guò)程
3.1 下載
下載頁(yè)
https://dev.mysql.com/downloads/mysql/
3.2 解壓到指定目錄
筆者把下載好的mysql-8.0.11-winx64.zip解壓到C盤根目錄婚夫,使用解壓縮軟件即可完成浸卦,問(wèn)題不大,不再贅述案糙。
3.3 配置系統(tǒng)環(huán)境變量
配置系統(tǒng)環(huán)境變量MYSQL_HOME限嫌,內(nèi)容為:
C:\mysql-8.0.11-winx64
1
在系統(tǒng)環(huán)境變量path中,追加如下內(nèi)容
;%MYSQL_HOME%\bin
1
3.4 生成配置文件my.ini
配置文件的內(nèi)容如下:
[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8
[mysqld]
# 設(shè)置端口
port = 3306
# 設(shè)置mysql的安裝目錄
basedir=C:\mysql-8.0.11-winx64
# 設(shè)置mysql數(shù)據(jù)庫(kù)數(shù)據(jù)的存放目錄
datadir=C:\mysql-8.0.11-winx64\data
# 允許最大連接數(shù)
max_connections = 200
# 服務(wù)端使用默認(rèn)字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時(shí)將使用默認(rèn)的存儲(chǔ)引擎
default-storage-engine=INNODB
# 取消權(quán)限設(shè)置
# skip-grant-tables
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
注意:在上述的配置文件中时捌,basedir指的是mysql的安裝目錄怒医,而datadir表示的是mysql數(shù)據(jù)庫(kù)存放的目錄。確保此目錄的存在奢讨,因此在填寫該配置文件之后稚叹,在my.ini同級(jí)目錄下創(chuàng)建空目錄data
3.5 命令行安裝MySQL并測(cè)試連接
3.5.1 初始化
C:\Users\全恒>mysqld --initialize --user=mysql --console
2018-10-14T07:52:44.799907Z 0 [System] [MY-013169] [Server] C:\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initia
lizing of server in progress as process 7592
2018-10-14T07:52:44.803321Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it
. Aborting.
2018-10-14T07:52:44.803710Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-10-14T07:52:44.803930Z 0 [System] [MY-010910] [Server] C:\mysql-8.0.11-winx64\bin\mysqld.exe: Shutdown complete (my
sqld 8.0.11)? MySQL Community Server - GPL.
1
2
3
4
5
6
7
8
在上述文件中,ERROR錯(cuò)誤提示表明在執(zhí)行mysqld --initialize時(shí),需要data目錄為空扒袖,因此清空配置文件指定的數(shù)據(jù)目錄data塞茅,重新執(zhí)行
C:\Users\全恒>mysqld --initialize --user=mysql --console
2018-10-14T07:53:24.876310Z 0 [System] [MY-013169] [Server] C:\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initia
lizing of server in progress as process 11816
2018-10-14T07:53:48.715236Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: =aJROkH+
5Sq1
2018-10-14T07:54:04.695974Z 0 [System] [MY-013170] [Server] C:\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initia
lizing of server has completed
1
2
3
4
5
6
7
在上述文檔中,表明mysqld執(zhí)行初始化時(shí)已經(jīng)成功僚稿,并且為用戶root@localhost創(chuàng)建了一個(gè)臨時(shí)的登陸密碼
=aJROkH+5Sq1
1
注意:保存該臨時(shí)密碼凡桥,在之后連接mysql服務(wù)時(shí)需要提供,當(dāng)然修改用戶密碼時(shí)也需要提供該臨時(shí)密碼蚀同。
3.5.2 管理員命令提示符號(hào)
3.5.2.1 管理員命令行安裝MySQL組件
然后使用管理員用戶打開命令提示符執(zhí)行如下命令:
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation缅刽。保留所有權(quán)利。
C:\windows\system32>mysqld --install
Service successfully installed.
3.5.2.2 管理員啟動(dòng)mysql服務(wù)
C:\windows\system32>net start mysql
發(fā)生系統(tǒng)錯(cuò)誤 2蠢络。
系統(tǒng)找不到指定的文件衰猛。
1
2
3
4
5
6
7
8
9
10
3.5.2.3 啟動(dòng)失敗定位和解決
在運(yùn)行中鍵入services.msc查看本機(jī)所有服務(wù),找到MySQL服務(wù)刹孔,點(diǎn)擊屬性
可以看到此處的可執(zhí)行路徑為并不是當(dāng)前的樣子[因?yàn)楣P者已經(jīng)修改過(guò)]
由于在服務(wù)頁(yè)面沒有提供修改接口啡省,因此要修改可執(zhí)行路徑需要在注冊(cè)表中進(jìn)行修改,
在運(yùn)行中髓霞,鍵入regedit卦睹,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
1
修改ImagePath,如下圖所示
按照實(shí)際情況修改即可方库。
修改完成之后结序,依然在管理員權(quán)限下的命令行中運(yùn)行
3.5.2.4 驗(yàn)證
C:\windows\system32>net start MySQL
MySQL 服務(wù)正在啟動(dòng) ...
MySQL 服務(wù)已經(jīng)啟動(dòng)成功。
1
2
3
3.5.3 登陸MySQL并修改密碼
使用普通的命令行連接服務(wù)修改密碼
C:\Users\全恒>mysql -u root -p
Enter password: ************? 【即之前的臨時(shí)密碼】
Welcome to the MySQL monitor.? Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.11
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
1
2
3
4
5
6
7
8
9
10
11
12
13
上述的彈窗表示已經(jīng)MySQL服務(wù)已經(jīng)正常啟動(dòng)纵潦,使用下述命令可以為’root’@’localhost‘修改連接MySQL服務(wù)的密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.12 sec)
1
2
4 常用命令
4.1 顯示所有數(shù)據(jù)庫(kù)
mysql> show databases;
+--------------------+
| Database? ? ? ? ? |
+--------------------+
| information_schema |
| mysql? ? ? ? ? ? ? |
| performance_schema |
| sys? ? ? ? ? ? ? ? |
+--------------------+
4 rows in set (0.06 sec)
1
2
3
4
5
6
7
8
9
10
4.2 查看數(shù)據(jù)庫(kù)信息status或\s
mysql> \s
--------------
mysql? Ver 8.0.11 for Win64 on x86_64 (MySQL Community Server - GPL)
Connection id:? ? ? ? ? 13
Current database:
Current user:? ? ? ? ? root@localhost
SSL:? ? ? ? ? ? ? ? ? ? Cipher in use is DHE-RSA-AES128-GCM-SHA256
Using delimiter:? ? ? ? ;
Server version:? ? ? ? 8.0.11 MySQL Community Server - GPL
Protocol version:? ? ? 10
Connection:? ? ? ? ? ? localhost via TCP/IP
Server characterset:? ? utf8
Db? ? characterset:? ? utf8
Client characterset:? ? utf8
Conn.? characterset:? ? utf8
TCP port:? ? ? ? ? ? ? 3306
Uptime:? ? ? ? ? ? ? ? 32 min 59 sec
Threads: 2? Questions: 14? Slow queries: 0? Opens: 140? Flush tables: 2? Open tables: 116? Queries per second avg: 0.007
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
4.3 切換數(shù)據(jù)庫(kù)use或\u
mysql> use sys;
Database changed
mysql> \u mysql
Database changed
1
2
3
4
4.4 創(chuàng)建數(shù)據(jù)庫(kù)
mysql> create database ACT;
Query OK, 1 row affected (0.10 sec)
mysql> show databases;
+--------------------+
| Database? ? ? ? ? |
+--------------------+
| act? ? ? ? ? ? ? ? |
| information_schema |
| mysql? ? ? ? ? ? ? |
| performance_schema |
| sys? ? ? ? ? ? ? ? |
+--------------------+
5 rows in set (0.00 sec)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
4.5 創(chuàng)建表
mysql> use act
Database changed
mysql> create table tb_grade(
? ? -> id int(11),
? ? -> name varchar(20),
? ? -> grade FLOAT
? ? -> );
Query OK, 0 rows affected (0.43 sec)
1
2
3
4
5
6
7
8
4.6 顯示當(dāng)前數(shù)據(jù)庫(kù)中表
mysql> show tables;
+---------------+
| Tables_in_act |
+---------------+
| tb_grade? ? ? |
+---------------+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
5 總結(jié)
該文檔演示了mysql-8.0.11-winx64的安裝和配置過(guò)程徐鹤,并演示在安裝mysql過(guò)程中的問(wèn)題和解決方式,在程序員開發(fā)過(guò)程中邀层,mysql是非常常用的數(shù)據(jù)庫(kù)返敬,畢竟開源非商業(yè)應(yīng)用,不用付費(fèi)寥院。安裝mysql之后更加重要的是mysql數(shù)據(jù)庫(kù)的使用和命令行操作劲赠,以及mysql對(duì)表的查詢,定義只磷,操縱经磅。限于篇幅,這些內(nèi)容不再本文檔中展示钮追。
6 引用和文檔下載
6.1文檔下載
https://download.csdn.net/download/lk142500/10719861
6.2引用
https://blog.csdn.net/qq_38345606/article/details/80641544
http://www.runoob.com/mysql/mysql-tutorial.html
---------------------