1. 程式人生 > >Windows下MySQL安裝配置和問題解決

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服務,點選屬性 檢視MySQL服務的屬性 可以看到此處的可執行路徑為並不是當前的樣子[因為筆者已經修改過] 由於在服務頁面沒有提供修改介面,因此要修改可執行路徑需要在登錄檔中進行修改, 在執行中,鍵入regedit,

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL

修改ImagePath,如下圖所示 編輯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對錶的查詢,定義,操縱。限於篇幅,這些內容不再本文件中展示。

6 引用和文件下載

6.1文件下載

6.2引用