MySQL 8 在 Windows 下安裝及使用 原 薦

MySQL 8 帶來了全新的體驗,比如支持 NoSQL、JSON 等,擁有比 MySQL 5.7 兩倍以上的性能提升。本文講解如何在 Windows 下安裝 MySQL 8,以及基本的 MySQL 用法。

下載

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

本例爲:MySQL Community Server 8.0.12。

解壓

解壓至安裝目錄,比如 D 盤根目錄下。

本例爲:D:\mysql-8.0.12-winx64

創建 my.ini

my.ini 是 MySQL 安裝的配置文件:

[mysqld]
# 安裝目錄
basedir=D:\\mysql-8.0.12-winx64
# 數據存放目錄
datadir=D:\\mysqlData\\data

my.ini放置在 MySQL 安裝目錄的根目錄下。需要注意的是,要先創建D:\mysqlData目錄。data目錄是由 MySQL 來創建。

初始化安裝

執行:

mysqld --defaults-file=D:\mysql-8.0.12-winx64\my.ini --initialize --console

控制檯輸出如下,說明安裝成功:

>mysqld --defaults-file=D:\mysql-8.0.12-winx64\my.ini --initialize --console
2018-08-20T16:14:45.287448Z 0 [System] [MY-013169] [Server] D:\mysql-8.0.12-winx64\bin\mysqld.exe (mysqld 8.0.12) initializing of server in progress as process 5012
2018-08-20T16:14:45.289628Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2018-08-20T16:14:45.299329Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-08-20T16:14:45.301316Z 0 [System] [MY-010910] [Server] D:\mysql-8.0.12-winx64\bin\mysqld.exe: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.

D:\mysql-8.0.12-winx64\bin>mysqld --defaults-file=D:\mysql-8.0.12-winx64\my.ini --initialize --console
2018-08-20T16:15:25.729771Z 0 [System] [MY-013169] [Server] D:\mysql-8.0.12-winx64\bin\mysqld.exe (mysqld 8.0.12) initializing of server in progress as process 18148
2018-08-20T16:15:43.569562Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: L-hk!rBuk9-.
2018-08-20T16:15:55.811470Z 0 [System] [MY-013170] [Server] D:\mysql-8.0.12-winx64\bin\mysqld.exe (mysqld 8.0.12) initializing of server has completed

其中,“L-hk!rBuk9-.”就是 root 用戶的初始化密碼。稍後可以做更改。

啓動、關閉 MySQL server

執行mysqld就能啓動 MySQL server,或者執行 mysqld --console可以看到完整的啓動信息:

>mysqld --console
2018-08-20T16:18:23.698153Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2018-08-20T16:18:23.698248Z 0 [System] [MY-010116] [Server] D:\mysql-8.0.12-winx64\bin\mysqld.exe (mysqld 8.0.12) starting as process 16304
2018-08-20T16:18:27.624422Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-08-20T16:18:27.793310Z 0 [System] [MY-010931] [Server] D:\mysql-8.0.12-winx64\bin\mysqld.exe: ready for connections. Version: '8.0.12'  socket: ''  port: 3306  MySQL Community Server - GPL.

關閉,可以執行 mysqladmin -u root shutdown

使用 MySQL 客戶端

使用 mysql 來登錄,賬號爲 root,密碼爲“L-hk!rBuk9-.”:

>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.12

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.

執行下面的語句來改密碼。其中“123456”即爲新密碼。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.13 sec)

MySQL 常用指令

顯示已有的數據庫:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.08 sec)

創建新的數據庫:

mysql> CREATE DATABASE lite;
Query OK, 1 row affected (0.19 sec)

使用數據庫:

mysql> USE lite;
Database changed

建表:

建表執行:

mysql> CREATE TABLE t_user (user_id BIGINT NOT NULL, username VARCHAR(20));
Query OK, 0 rows affected (0.82 sec)

查看錶:

查看數據庫中的所有表:

mysql> SHOW TABLES;
+----------------+
| Tables_in_lite |
+----------------+
| t_user         |
+----------------+
1 row in set (0.00 sec)

查看錶的詳情:

mysql> DESCRIBE t_user;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| user_id  | bigint(20)  | NO   |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

插入數據:

mysql> INSERT INTO t_user(user_id, username) VALUES(1, '老衛');
Query OK, 1 row affected (0.08 sec)

參考引用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章