Windows下MySQL安裝配置和問題解決
1 簡介
1.1 MySQL資料庫
MySQL 是一個關係型資料庫管理系統,由瑞典 MySQL AB 公司開發,目前屬於 Oracle 公司。MySQL 是一種關聯資料庫管理系統,關聯資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。 • MySQL 是開源的,所以你不需要支付額外的費用。 • MySQL 支援大型的資料庫。可以處理擁有上千萬條記錄的大型資料庫。 • MySQL 使用標準的SQL資料語言形式。 • MySQL 可以運行於多個系統上,並且支援多種語言。這些程式語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 • MySQL 對PHP有很好的支援,PHP是目前最流行的Web開發語言。 • MySQL 支援大型資料庫,支援5000萬條記錄的資料倉庫,32位系統表文件最大可支援4GB,64位系統支援最大的表文件為8TB。 • MySQL 是可以定製的,採用了GPL協議,你可以修改原始碼來開發自己的 MySQL 系統。
1.2 什麼是資料庫
資料庫(Database)是按照資料結構來組織、儲存和管理資料的倉庫, 每個資料庫都有一個或多個不同的API用於建立,訪問,管理,搜尋和複製所儲存的資料。 我們也可以將資料儲存在檔案中,但是在檔案中讀寫資料速度相對較慢。 所以,現在我們使用關係型資料庫管理系統(RDBMS)來儲存和管理的大資料量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。 RDBMS即關係資料庫管理系統(Relational Database Management System)的特點: • 1.資料以表格的形式出現 • 2.每行為各種記錄名稱 • 3.每列為記錄名稱所對應的資料域 • 4.許多的行和列組成一張表單 • 5.若干的表單組成database
2 材料
mysql-8.0.11-winx64.zip Windows系統
3 安裝和配置過程
3.1 下載
下載頁
3.2 解壓到指定目錄
筆者把下載好的mysql-8.0.11-winx64.zip解壓到C盤根目錄,使用解壓縮軟體即可完成,問題不大,不再贅述。
3.3 配置系統環境變數
配置系統環境變數MYSQL_HOME,內容為:
C:\mysql-8.0.11-winx64
在系統環境變數path中,追加如下內容
;%MYSQL_HOME%\bin
3.4 生成配置檔案my.ini
配置檔案的內容如下:
[mysql] # 設定mysql客戶端預設字符集 default-character-set=utf8 [mysqld] # 設定埠 port = 3306 # 設定mysql的安裝目錄 basedir=C:\mysql-8.0.11-winx64 # 設定mysql資料庫資料的存放目錄 datadir=C:\mysql-8.0.11-winx64\data # 允許最大連線數 max_connections = 200 # 服務端使用預設字符集預設為8位元編碼的latin1字符集 character-set-server=utf8 # 建立新表時將使用預設的儲存引擎 default-storage-engine=INNODB # 取消許可權設定 # skip-grant-tables
注意:在上述的配置檔案中,basedir指的是mysql的安裝目錄,而datadir表示的是mysql資料庫存放的目錄。確保此目錄的存在,因此在填寫該配置檔案之後,在my.ini同級目錄下建立空目錄data
3.5 命令列安裝MySQL並測試連線
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.
在上述檔案中,ERROR錯誤提示表明在執行mysqld --initialize時,需要data目錄為空,因此清空配置檔案指定的資料目錄data,重新執行
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 [email protected]: =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
在上述文件中,表明mysqld執行初始化時已經成功,並且為使用者[email protected]建立了一個臨時的登陸密碼
=aJROkH+5Sq1
注意:儲存該臨時密碼,在之後連線mysql服務時需要提供,當然修改使用者密碼時也需要提供該臨時密碼。
3.5.2 管理員命令提示符號
3.5.2.1 管理員命令列安裝MySQL元件
然後使用管理員使用者開啟命令提示符執行如下命令:
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有權利。
C:\windows\system32>mysqld --install
Service successfully installed.
3.5.2.2 管理員啟動mysql服務
C:\windows\system32>net start mysql
發生系統錯誤 2。
系統找不到指定的檔案。
3.5.2.3 啟動失敗定位和解決
在執行中鍵入services.msc檢視本機所有服務,找到MySQL服務,點選屬性 可以看到此處的可執行路徑為並不是當前的樣子[因為筆者已經修改過] 由於在服務頁面沒有提供修改介面,因此要修改可執行路徑需要在登錄檔中進行修改, 在執行中,鍵入regedit,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
修改ImagePath,如下圖所示 按照實際情況修改即可。 修改完成之後,依然在管理員許可權下的命令列中執行
3.5.2.4 驗證
C:\windows\system32>net start MySQL
MySQL 服務正在啟動 ...
MySQL 服務已經啟動成功。
3.5.3 登陸MySQL並修改密碼
使用普通的命令列連線服務修改密碼
C:\Users\全恆>mysql -u root -p
Enter password: ************ 【即之前的臨時密碼】
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.
上述的彈窗表示已經MySQL服務已經正常啟動,使用下述命令可以為’root’@’localhost‘修改連線MySQL服務的密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.12 sec)
4 常用命令
4.1 顯示所有資料庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.06 sec)
4.2 檢視資料庫資訊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: [email protected]
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
4.3 切換資料庫use或\u
mysql> use sys;
Database changed
mysql> \u mysql
Database changed
4.4 建立資料庫
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)
4.5 建立表
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)
4.6 顯示當前資料庫中表
mysql> show tables;
+---------------+
| Tables_in_act |
+---------------+
| tb_grade |
+---------------+
1 row in set (0.00 sec)
5 總結 該文件演示了mysql-8.0.11-winx64的安裝和配置過程,並演示在安裝mysql過程中的問題和解決方式,在程式設計師開發過程中,mysql是非常常用的資料庫,畢竟開源非商業應用,不用付費。安裝mysql之後更加重要的是mysql資料庫的使用和命令列操作,以及mysql對錶的查詢,定義,操縱。限於篇幅,這些內容不再本文件中展示。