Microsoft Windows [版本 10.0.15063] (c) 2017 Microsoft Corporation。保留所有權利。 C:\WINDOWS\system32>D: D:\>cd D:\Program Files\MySql\MySql-8.0.12-WinX64\bin //--定位到mysql安裝目錄 D:\Program Files\MySql\MySql-8.0.12-WinX64\bin>mysqld --initialize --console //--初始化mysql 2018-08-15T02:30:59.416913Z 0 [System] [MY-013169] [Server] D:\Program Files\MySql\MySql-8.0.12-WinX64\bin\mysqld.exe (mysqld 8.0.12) initializing of server in progress as process 2624 2018-08-15T02:31:07.293559Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: wDy_B&wV*7zY 2018-08-15T02:31:10.177291Z 0 [System] [MY-013170] [Server] D:\Program Files\MySql\MySql-8.0.12-WinX64\bin\mysqld.exe (mysqld 8.0.12) initializing of server has completed D:\Program Files\MySql\MySql-8.0.12-WinX64\bin>mysqld --install mysql8012 //--安裝mysql服務 mysql8012是服務名稱 Service successfully installed. D:\Program Files\MySql\MySql-8.0.12-WinX64\bin>net start mysql8012 //--啟動服務 mysql8012 服務正在啟動 .. mysql8012 服務已經啟動成功。 D:\Program Files\MySql\MySql-8.0.12-WinX64\bin>mysql -u root -p //--進入mysql Enter password: ************ Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 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. mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; //--修改用戶密碼 Query OK, 0 rows affected (0.09 sec) mysql> show databases; //--展示數據庫 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec) mysql> use mysql; //--進入mysql數據庫 Database changed mysql> show tables; //--展示數據庫表 +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | component | | db | | default_roles | | engine_cost | | func | | general_log | | global_grants | | gtid_executed | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | password_history | | plugin | | procs_priv | | proxies_priv | | role_edges | | server_cost | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 33 rows in set (0.00 sec) mysql> select user,host,authentication_string from mysql.user; //--展示mysql用戶 +------------------+-----------+------------------------------------------------------------------------+ | user | host | authentication_string | +------------------+-----------+------------------------------------------------------------------------+ | mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.session | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.sys | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +------------------+-----------+------------------------------------------------------------------------+ 4 rows in set (0.00 sec) mysql> CREATE USER 'myuser'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; //--修改密碼 Query OK, 0 rows affected (0.02 sec) mysql> select user, host, plugin, authentication_string from user\G; //--展示用戶 *************************** 1. row *************************** user: myuser host: % plugin: mysql_native_password authentication_string: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 *************************** 2. row *************************** user: mysql.infoschema host: localhost plugin: caching_sha2_password authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED *************************** 3. row *************************** user: mysql.session host: localhost plugin: caching_sha2_password authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED *************************** 4. row *************************** user: mysql.sys host: localhost plugin: caching_sha2_password authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED *************************** 5. row *************************** user: root host: localhost plugin: mysql_native_password authentication_string: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 5 rows in set (0.00 sec) ERROR: No query specified mysql> select user, host, plugin, authentication_string from user; //--展示加密方式 +------------------+-----------+-----------------------+------------------------------------------------------------------------+ | user | host | plugin | authentication_string | +------------------+-----------+-----------------------+------------------------------------------------------------------------+ | myuser | % | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.session | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.sys | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | root | localhost | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +------------------+-----------+-----------------------+------------------------------------------------------------------------+ 5 rows in set (0.00 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'; //--數據庫授權 授權所有權限 Query OK, 0 rows affected (0.06 sec) mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'myuser'@'%'; //--授權基本的查詢修改權限,按需求設置 Query OK, 0 rows affected (0.00 sec) mysql> show grants for 'myuser'@'%'; //--查看用戶權限 +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Grants for myuser@% | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `myuser`@`%` | | GRANT BACKUP_ADMIN,BINLOG_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SET_USER_ID,SYSTEM_VARIABLES_ADMIN,XA_RECOVER_ADMIN ON *.* TO `myuser`@`%` | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec) mysql>
下載zip安裝包:
MySQL8.0 For Windows zip包下載地址:https://dev.mysql.com/downloads/file/?id=476233,進入頁面后可以不登錄。后點擊底部“No thanks, just start my download.”即可開始下載。
或直接下載:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip
環境:Windows 10
一,安裝
1.1,解壓zip包到安裝目錄
比如我的安裝目錄是:C:\Program Files\MySQL
1.2,配置文件
在Windows系統中,配置文件默認是安裝目錄下的 my.ini 文件(或my-default.ini),部分配置需要在初始安裝時配置,大部分也可以在安裝完成后進行更改。當然,極端情況下,所有的都是可以更改的。
我們發現解壓后的目錄並沒有my.ini文件,沒關系可以自行創建。在安裝根目錄下添加 my.ini,比如我這里是:C:\Program Files\MySQL\my.ini,寫入基本配置:
[mysqld] # 設置3306端口 port=3306 # 設置mysql的安裝目錄 basedir=C:\Program Files\MySQL # 設置mysql數據庫的數據的存放目錄 datadir=E:\database\MySQL\Data # 允許最大連接數 max_connections=200 # 允許連接失敗的次數。這是為了防止有人從該主機試圖攻擊數據庫系統 max_connect_errors=10 # 服務端使用的字符集默認為UTF8 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB # 默認使用“mysql_native_password”插件認證 default_authentication_plugin=mysql_native_password [mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 [client] # 設置mysql客戶端連接服務端時默認使用的端口 port=3306 default-character-set=utf8
注意,里面的 basedir 是我本地的安裝目錄,datadir 是我數據庫數據文件要存放的位置,各項配置需要根據自己的環境進行配置。
查看所有的配置項,可參考:https://dev.mysql.com/doc/refman/8.0/en/mysqld-option-tables.html
1.3,初始化數據庫
在MySQL安裝目錄的 bin 目錄下執行命令:
mysqld --initialize --console
執行完成后,會打印 root 用戶的初始默認密碼,比如:
C:\Users\Administrator>cd C:\Program Files\MySQL\bin C:\Program Files\MySQL\bin>mysqld --initialize --console 2018-04-28T15:57:17.087519Z 0 [System] [MY-013169] [Server] C:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 4984 2018-04-28T15:57:24.859249Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rI5rvf5x5G,E 2018-04-28T15:57:27.106660Z 0 [System] [MY-013170] [Server] C:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.11) initializing of server has completed C:\Program Files\MySQL\bin>
注意!執行輸出結果里面有一段: [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rI5rvf5x5G,E 其中root@localhost:后面的“rI5rvf5x5G,E”就是初始密碼(不含首位空格)。在沒有更改密碼前,需要記住這個密碼,后續登錄需要用到。
要是你手賤,關快了,或者沒記住,那也沒事,刪掉初始化的 datadir 目錄,再執行一遍初始化命令,又會重新生成的。當然,也可以使用安全工具,強制改密碼,用什么方法,自己隨意。
參考:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
1.4,安裝服務
在MySQL安裝目錄的 bin 目錄下執行命令(以管理員身份打開cmd命令行,或者在安裝目錄Shift+右鍵“在此處打開命令行窗口”):
mysqld --install [服務名]
后面的服務名可以不寫,默認的名字為 mysql。當然,如果你的電腦上需要安裝多個MySQL服務,就可以用不同的名字區分了,比如 mysql5 和 mysql8。
安裝完成之后,就可以通過命令net start mysql啟動MySQL的服務了。
示例:
C:\Program Files\MySQL\bin>mysqld --install Service successfully installed. C:\Program Files\MySQL\bin>net start mysql MySQL 服務正在啟動 .. MySQL 服務已經啟動成功。 C:\Program Files\MySQL\bin>
參考:https://dev.mysql.com/doc/refman/8.0/en/windows-start-service.html
二,更改密碼和密碼認證插件
在MySQL安裝目錄的 bin 目錄下執行命令:
mysql -u root -p
這時候會提示輸入密碼,記住了上面第1.3步安裝時的密碼,填入即可登錄成功,進入MySQL命令模式。
在MySQL8.0.4以前,執行
SET PASSWORD=PASSWORD('[修改的密碼]');
就可以更改密碼,但是MySQL8.0.4開始,這樣默認是不行的。因為之前,MySQL的密碼認證插件是“mysql_native_password”,而現在使用的是“caching_sha2_password”。
因為當前有很多數據庫工具和鏈接包都不支持“caching_sha2_password”,為了方便,我暫時還是改回了“mysql_native_password”認證插件。
修改用戶密碼,在MySQL中執行命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
修改密碼驗證插件,同時修改密碼。
如果想默認使用“mysql_native_password”插件認證,可以在配置文件中配置default_authentication_plugin項。
[mysqld]
default_authentication_plugin=mysql_native_password
示例:
C:\Program Files\MySQL\bin>mysql -u root -p Enter password: ************ Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 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> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼'; Query OK, 0 rows affected (0.06 sec) mysql>
到此,安裝部署就完成了。官方說測試速度MySQL8比5快兩倍。
可以用 命令查看一下默認安裝的數據庫:
show databases;
use mysql;
show tables;
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec) mysql>
看到默認初始化了mysql數據庫,其中user表里面存儲MySQL用戶信息。我們可以看一下默認MySQL用戶:
select user,host,authentication_string from mysql.user;
mysql> select user,host,authentication_string from mysql.user; +------------------+-----------+-------------------------------------------+ | user | host | authentication_string | +------------------+-----------+-------------------------------------------+ | mysql.infoschema | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | root | localhost | *27C237A977F4F44D3F551F1A673BE14DFD232961 | +------------------+-----------+-------------------------------------------+ 4 rows in set (0.00 sec) mysql>
管理員root的host是localhost,代表僅限localhost登錄訪問。如果要允許開放其他ip登錄,則需要添加新的host。如果要允許所有ip訪問,可以直接修改成“%”
創建用戶:
CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#';
#(需要注意:mysql8.0加密方式修改了)
#檢查用戶
select user, host, plugin, authentication_string from user\G;
授權遠程數據庫
#授權所有權限
GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%';
#授權基本的查詢修改權限,按需求設置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxh'@'%';
查看用戶權限
show grants for 'xxh'@'%';
示例:
mysql> use mysql; Database changed mysql> CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#'; #創建用戶(注意:mysql8.0加密方式修改了) Query OK, 0 rows affected (0.07 sec)
mysql>
查看密碼加密方式:
mysql> select user, host, plugin, authentication_string from user; +------------------+-----------+-----------------------+-------------------------------------------+ | user | host | plugin | authentication_string | +------------------+-----------+-----------------------+-------------------------------------------+ | xxh | % | mysql_native_password | *70FD6FB4F675E08FF785A754755B5EBA6DA62851 | | mysql.infoschema | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.session | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | root | localhost | mysql_native_password | *27C237A977F4F44D3F551F1A673BE14DFD232961 | +------------------+-----------+-----------------------+-------------------------------------------+ 5 rows in set (0.00 sec) mysql>
另外,如果需要新增賬戶,或者本機以外的其他人訪問MySQL則還需要設置內置賬戶的host,具體可以參考:MySQL創建用戶與授權
轉自:http://www.cnblogs.com/xiongzaiqiren/p/8970203.html
http://www.cnblogs.com/laumians-notes/p/9069498.html