一、下載MySQL
官網地址:
https://www.mysql.com/
下載地址:
http://dev.mysql.com/downloads/mysql/
二、MySQL安裝
1、許可協議
License Agreement(許可協議)->I accept the license terms(我接受許可條款)->Next(下一個)
2、選擇安裝類型
Choosing a Setup Type(選擇安裝類型)->Custom(自定義)->Next(下一個)
3、選擇產品和功能
Select Products and Features(選擇產品和功能)->MySQL Server(MySQL服務器)和MySQL Workbench(MySQL工作臺)->Next(下一個)
4、安裝
Installation(安裝)->Execute(執行)
Installation(安裝)->Next(下一個)
5、產品配置
Product Configuration(產品配置)->Next(下一個)
5.1、類型和網絡
Type and Networking(類型和網絡)->Config Type(配置類型):Server Machine(服務器類型)->Next(下一個)
Server Configuration Type(服務配置類型)
Config Type(配置類型):Server Machine(服務器類型)
Connectivity(連接)
Port Number(端口號)
Open Firewall port for network access(打開防火墻端口網絡訪問)
Named Pipe(命名管道):Pipe Name(管道名字)
Shared Memory(共享內存):Memory Name(內存名字)
Advanced Configuration(高級配置)
Show Advanced Options(顯示高級選項)
5.2、賬號和角色
Accounts and Roles(賬號和角色)->MySQL Root Password(MySQL的Root用戶密碼)/Repeate Password(重復密碼)->Next(下一個)
5.3、Windows服務Windows Service(Windows服務)->Windows Service Name(Windows服務名稱)->Next(下一個)
5.4、插件和擴展
Plugins and Extensions(插件和擴展)->Next(下一個)
5.5、應用服務器配置
Apply Server Configuration(應用服務器配置)->Execute(執行)
Apply Server Configuration(應用服務器配置)->Finish(完成)
6、產品配置完成
Product Configuration(產品配置)->Next(下一個)
7、安裝完成
Installation Complete(安裝完成)->Finish(完成)
8、MySQL工作臺啟動界面
三、配置MySQL
配置MySQL環境變量
按下Win+X+Y鍵
進入Win系統界面
點擊"高級系統設置"—>"高級"—>"環境變量"
在環境變量中,設置三個屬性,分別為:
MySQL_HOME,Path
(大小寫無所謂),若已存在則點擊"編輯",不存在則點擊"新建"。
a、設置MySQL_HOME
變量名:MySQL_HOME
變量值:C:/Program Files/MySQL/MySQL Server 5.7(MySQL安裝路徑)
b、設置Path
變量名:Path
變量值:%MySQL_HOME%/bin
環境變量配置完成之后測試是否成功
按下Win+X+C鍵
打開命令提示符
輸入:mysql --version
看到如下圖,說明已經配置成功了。
四、優化MySQL
1、編輯配置文件my.ini
文件位置:C:/ProgramData/MySQL/MySQL Server 5.7
配置文件內容
# *** MySQL應用端設置 *** [client]#MySQL端口port=3306#MySQL字符集default-character-set=utf8 # *** MySQL服務端設置 ***[mysqld]#表示是本機的序號為1,一般來講就是master的意思server-id = 1#MySQL端口號port = 3306#MySQL用戶user = mysql#全局地址bind_address= 0.0.0.0#MySQL安裝目錄basedir="C:/Program Files/MySQL/MySQL Server 5.7/"#MySQL數據目錄datadir="C:/ProgramData/MySQL/MySQL Server 5.7/Data/"#MySQL錯誤日志路徑log_error="C:/ProgramData/MySQL/MySQL Server 5.7/Data/mysql-error.log"#MySQL進程IDpid-file="C:/ProgramData/MySQL/MySQL Server 5.7/Data/mysql.pid"#MySQL字符集character-set-server=utf8#操作系統在監聽隊列中所能保持的連接數back_log = 300#MySQL連接數的上限max_connections = 3000#每個客戶端連接最大的錯誤允許數量max_connect_errors = 50#所有線程所打開表的數量table_open_cache = 4096#跳過外部鎖定external-locking = FALSE#服務器發送和接受的最大包長度max_allowed_packet = 32M#獨立的內存表所允許的最大容量max_heap_table_size = 128M#排序緩沖分配的內存大小sort_buffer_size = 16M#全聯合發生時分配的內存大小join_buffer_size = 16M#線程緩存分配的大小thread_cache_size = 16#運行的線程的數量#thread_concurrency = 8#MySQL的查詢緩沖大小query_cache_size = 128M#MySQL的查詢緩沖最小值query_cache_limit = 4M#被全文檢索索引的最小的字長ft_min_word_len = 8#當創建新表時作為默認使用的表類型default-storage-engine = InnoDB#線程使用的堆大小thread_stack = 512K#設定默認的事務隔離級別.可用的級別如下:#READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLEtransaction_isolation = REPEATABLE-READ#服務器關閉交互式連接前等待活動的秒數interactive_timeout = 1000#服務器關閉非交互連接之前等待活動的秒數wait_timeout = 1000#內部(內存中)臨時表的最大大小tmp_table_size = 128M#MySQL不區分大小寫lower_case_table_names=1#禁用符號鏈接symbolic-links=0#禁用加密插件early-plugin-load=""#開啟查詢緩存explicit_defaults_for_timestamp=true#開啟支持模示sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'#顯示兼容show_compatibility_56=on#開啟日志時間戳為系統時間log_timestamps=system#跳過安全訪問#skip-grant-tables#跳過安裝路徑secure-file-priv = NULL#SSL配置skip-ssl#禁用DNS解析#skip-name-resolve#不要監聽網絡#skip-networking#取消文件系統的外部鎖#skip-locking # *** 慢查詢參數 ***#慢查詢設定的時間long_query_time = 6#啟動慢查詢日志slow_query_log#慢查詢日志路徑slow_query_log_file=slow.log#將所有沒有使用帶索引的查詢語句全部寫到慢查詢日志中log_queries_not_using_indexes = 1#開啟記錄管理型慢SQLlog_slow_admin_statements = 1#保存查詢的日志log_slow_slave_statements = 1#每分鐘允許記錄到slow log的且未使用索引的SQL語句次數log_throttle_queries_not_using_indexes = 10#最小檢查行數限制min_examined_row_limit = 100 # *** 中繼和狀態日志參數 ***#二進制日志路徑log-bin=mysql-bin#binlog日志格式binlog_format = MIXED #binlog記錄SQL狀態所持有的緩存大小binlog_cache_size = 4M#binlog使用的最大緩存內存大小max_binlog_cache_size = 512M#binlog日志大小max_binlog_size = 32M#binlog日志保留天數expire_logs_days = 7#主服信息記錄庫=表/文件#master_info_repository = TABLE#中繼日志信息記錄庫#relay_log_info_repository = TABLE#同步主庫日志信息#sync_binlog = 1#啟用gtid類型,否則就是普通的復制架構#gtid_mode = on#強制GTID的一致性#enforce_gtid_consistency = 1#slave更新是否記入日志#log_slave_updates#中繼日志信息名稱#relay_log = relay.log#自動修復日志#relay_log_recovery = 1#默認開啟簡化的GTID 恢復#binlog_gtid_simple_recovery = 1#自動跳過錯誤信息slave_skip_errors = ddl_exist_errors # *** INNODB 相關選項 ***#INNODB的數據頁大小innodb_page_size = 16K#緩存innodb表的索引,數據,插入數據時的緩沖innodb_buffer_pool_size = 256M#InnoDB緩存池被劃分到一個區域innodb_buffer_pool_instances = 1#啟動MySQL服務時,MySQL將本地熱數據加載到InnoDB緩沖池中innodb_buffer_pool_load_at_startup = 1#停止MySQL服務時,InnoDB將InnoDB緩沖池中的熱數據保存到本地硬盤innodb_buffer_pool_dump_at_shutdown = 1#事務等待獲取資源等待的最長時間innodb_lock_wait_timeout = 5#使用單獨的清除線程收回數據innodb_purge_threads = 1#單列索引限制innodb_large_prefix = 1#能否將死鎖信息保存到日志中innodb_print_all_deadlocks = 1#INNODB排序緩沖分配的內存大小innodb_sort_buffer_size = 128K#InnoDB 將數據保存在一個或者多個數據文件中成為表空間.innodb_data_file_path = ibdata1:10M:autoextend#在InnoDb 核心內的允許線程數量.innodb_thread_concurrency = 16#日志寫入日志文件在每次提交后,但是日志文件只有大約每秒才會刷新到磁盤上.innodb_flush_log_at_trx_commit = 1#用來緩沖日志數據的緩沖區的大小.innodb_log_buffer_size = 16M#在日志組中每個日志文件的大小.innodb_log_file_size = 512M#在日志組中的文件總數.innodb_log_files_in_group = 3#在InnoDB 緩沖池中最大允許的臟頁面的比例.innodb_max_dirty_pages_pct = 90#事物回滾等待的時間innodb_lock_wait_timeout = 120#InnoDB是否需要將所有表的數據和索引存放在共享表空間里(innodb_file_per_table = OFF) #或者為每張表的數據單獨放在一個.ibd文件(innodb_file_per_table = ON)innodb_file_per_table = on#轉儲每個bp instance LRU上最熱的page的百分比innodb_buffer_pool_dump_pct = 40#多個page cleaner線程提高臟頁刷新效率innodb_page_cleaners = 4#可以截斷undo日志位于撤消表空間innodb_undo_log_truncate = 1#控制最大undo tablespace文件的大小innodb_max_undo_log_size = 2G#用于控制purge回滾段的頻度innodb_purge_rseg_truncate_frequency = 128#不使用INNODB #skip-innodb # *** MyISAM 相關選項 ***#關鍵詞緩沖的大小key_buffer_size = 128M#MyISAM表全表掃描的緩沖大小read_buffer_size = 8M#隨機讀取數據緩沖區使用內存read_rnd_buffer_size = 16M#MyISAM 使用特殊的類似樹的cache來使得突發插入bulk_insert_buffer_size = 256M#到一個空表中引起重建索引時被分配.myisam_sort_buffer_size = 256M#MySQL重建索引時所允許的最大臨時文件的大小myisam_max_sort_file_size = 10G#如果一個表擁有超過一個索引, MyISAM 可以通過并行排序使用超過一個線程去修復他們.myisam_repair_threads = 1#自動檢查和修復沒有適當關閉的 MyISAM 表.#myisam_recover#默認關閉Federatedskip-federated [mysqldump]#不要在將內存中的整個結果寫入磁盤之前緩存quick#服務器發送和接受的最大包長度max_allowed_packet = 32M [mysql]#自動補全no-auto-rehash#MySQL字符集default-character-set=utf8 [myisamchk]#關鍵詞緩沖的大小key_buffer = 16M#排序緩沖分配的內存大小sort_buffer_size = 16M#寫入緩存的內存大小read_buffer = 8M#讀取緩存的內存大小write_buffer = 8M [mysqld_safe]#增加每個進程的可打開文件數量.open-files-limit = 8192
2、重啟MySQL輸入:
net stop mysql
net start mysql
五、更換MySQL數據目錄
1、創建MySQL數據目錄
在E盤創建MySQL數據目錄
數據目錄位置:E:/MySQL/Data
2、改寫配置文件(將my-default.ini重命名為my.ini)
文件位置:C:/Program Files/MySQL/MySQL Server 5.7
# *** MySQL應用端設置 *** [client]#MySQL端口port=3306#MySQL字符集default-character-set=utf8 # *** MySQL服務端設置 ***[mysqld]#表示是本機的序號為1,一般來講就是master的意思server-id = 1#MySQL端口號port = 3306#MySQL用戶user = mysql#全局地址bind_address= 0.0.0.0#MySQL安裝目錄basedir="C:/Program Files/MySQL/MySQL Server 5.7/"#MySQL數據目錄datadir="E:/MySQL/Data/"#MySQL錯誤日志路徑log_error="E:/MySQL/Data/mysql-error.log"#MySQL進程IDpid-file="E:/MySQL/Data/mysql.pid"#MySQL字符集character-set-server=utf8#操作系統在監聽隊列中所能保持的連接數back_log = 300#MySQL連接數的上限max_connections = 3000#每個客戶端連接最大的錯誤允許數量max_connect_errors = 50#所有線程所打開表的數量table_open_cache = 4096#跳過外部鎖定external-locking = FALSE#服務器發送和接受的最大包長度max_allowed_packet = 32M#獨立的內存表所允許的最大容量max_heap_table_size = 128M#排序緩沖分配的內存大小sort_buffer_size = 16M#全聯合發生時分配的內存大小join_buffer_size = 16M#線程緩存分配的大小thread_cache_size = 16#運行的線程的數量#thread_concurrency = 8#MySQL的查詢緩沖大小query_cache_size = 128M#MySQL的查詢緩沖最小值query_cache_limit = 4M#被全文檢索索引的最小的字長ft_min_word_len = 8#當創建新表時作為默認使用的表類型default-storage-engine = InnoDB#線程使用的堆大小thread_stack = 512K#設定默認的事務隔離級別.可用的級別如下:#READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLEtransaction_isolation = REPEATABLE-READ#服務器關閉交互式連接前等待活動的秒數interactive_timeout = 1000#服務器關閉非交互連接之前等待活動的秒數wait_timeout = 1000#內部(內存中)臨時表的最大大小tmp_table_size = 128M#MySQL不區分大小寫lower_case_table_names=1#禁用符號鏈接symbolic-links=0#禁用加密插件early-plugin-load=""#開啟查詢緩存explicit_defaults_for_timestamp=true#開啟支持模示sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'#顯示兼容show_compatibility_56=on#開啟日志時間戳為系統時間log_timestamps=system#跳過安全訪問#skip-grant-tables#跳過安裝路徑secure-file-priv = NULL#SSL配置skip-ssl#禁用DNS解析#skip-name-resolve#不要監聽網絡#skip-networking#取消文件系統的外部鎖#skip-locking # *** 慢查詢參數 ***#慢查詢設定的時間long_query_time = 6#啟動慢查詢日志slow_query_log#慢查詢日志路徑slow_query_log_file=slow.log#將所有沒有使用帶索引的查詢語句全部寫到慢查詢日志中log_queries_not_using_indexes = 1#開啟記錄管理型慢SQLlog_slow_admin_statements = 1#保存查詢的日志log_slow_slave_statements = 1#每分鐘允許記錄到slow log的且未使用索引的SQL語句次數log_throttle_queries_not_using_indexes = 10#最小檢查行數限制min_examined_row_limit = 100 # *** 中繼和狀態日志參數 ***#二進制日志路徑log-bin=mysql-bin#binlog日志格式binlog_format = MIXED #binlog記錄SQL狀態所持有的緩存大小binlog_cache_size = 4M#binlog使用的最大緩存內存大小max_binlog_cache_size = 512M#binlog日志大小max_binlog_size = 32M#binlog日志保留天數expire_logs_days = 7#主服信息記錄庫=表/文件#master_info_repository = TABLE#中繼日志信息記錄庫#relay_log_info_repository = TABLE#同步主庫日志信息#sync_binlog = 1#啟用gtid類型,否則就是普通的復制架構#gtid_mode = on#強制GTID的一致性#enforce_gtid_consistency = 1#slave更新是否記入日志#log_slave_updates#中繼日志信息名稱#relay_log = relay.log#自動修復日志#relay_log_recovery = 1#默認開啟簡化的GTID 恢復#binlog_gtid_simple_recovery = 1#自動跳過錯誤信息slave_skip_errors = ddl_exist_errors # *** INNODB 相關選項 ***#INNODB的數據頁大小innodb_page_size = 16K#緩存innodb表的索引,數據,插入數據時的緩沖innodb_buffer_pool_size = 256M#InnoDB緩存池被劃分到一個區域innodb_buffer_pool_instances = 1#啟動MySQL服務時,MySQL將本地熱數據加載到InnoDB緩沖池中innodb_buffer_pool_load_at_startup = 1#停止MySQL服務時,InnoDB將InnoDB緩沖池中的熱數據保存到本地硬盤innodb_buffer_pool_dump_at_shutdown = 1#事務等待獲取資源等待的最長時間innodb_lock_wait_timeout = 5#使用單獨的清除線程收回數據innodb_purge_threads = 1#單列索引限制innodb_large_prefix = 1#能否將死鎖信息保存到日志中innodb_print_all_deadlocks = 1#INNODB排序緩沖分配的內存大小innodb_sort_buffer_size = 128K#InnoDB 將數據保存在一個或者多個數據文件中成為表空間.innodb_data_file_path = ibdata1:10M:autoextend#在InnoDb 核心內的允許線程數量.innodb_thread_concurrency = 16#日志寫入日志文件在每次提交后,但是日志文件只有大約每秒才會刷新到磁盤上.innodb_flush_log_at_trx_commit = 1#用來緩沖日志數據的緩沖區的大小.innodb_log_buffer_size = 16M#在日志組中每個日志文件的大小.innodb_log_file_size = 512M#在日志組中的文件總數.innodb_log_files_in_group = 3#在InnoDB 緩沖池中最大允許的臟頁面的比例.innodb_max_dirty_pages_pct = 90#事物回滾等待的時間innodb_lock_wait_timeout = 120#InnoDB是否需要將所有表的數據和索引存放在共享表空間里(innodb_file_per_table = OFF) #或者為每張表的數據單獨放在一個.ibd文件(innodb_file_per_table = ON)innodb_file_per_table = on#轉儲每個bp instance LRU上最熱的page的百分比innodb_buffer_pool_dump_pct = 40#多個page cleaner線程提高臟頁刷新效率innodb_page_cleaners = 4#可以截斷undo日志位于撤消表空間innodb_undo_log_truncate = 1#控制最大undo tablespace文件的大小innodb_max_undo_log_size = 2G#用于控制purge回滾段的頻度innodb_purge_rseg_truncate_frequency = 128#不使用INNODB #skip-innodb # *** MyISAM 相關選項 ***#關鍵詞緩沖的大小key_buffer_size = 128M#MyISAM表全表掃描的緩沖大小read_buffer_size = 8M#隨機讀取數據緩沖區使用內存read_rnd_buffer_size = 16M#MyISAM 使用特殊的類似樹的cache來使得突發插入bulk_insert_buffer_size = 256M#到一個空表中引起重建索引時被分配.myisam_sort_buffer_size = 256M#MySQL重建索引時所允許的最大臨時文件的大小myisam_max_sort_file_size = 10G#如果一個表擁有超過一個索引, MyISAM 可以通過并行排序使用超過一個線程去修復他們.myisam_repair_threads = 1#自動檢查和修復沒有適當關閉的 MyISAM 表.#myisam_recover#默認關閉Federatedskip-federated [mysqldump]#不要在將內存中的整個結果寫入磁盤之前緩存quick#服務器發送和接受的最大包長度max_allowed_packet = 32M [mysql]#自動補全no-auto-rehash#MySQL字符集default-character-set=utf8 [myisamchk]#關鍵詞緩沖的大小key_buffer = 16M#排序緩沖分配的內存大小sort_buffer_size = 16M#寫入緩存的內存大小read_buffer = 8M#讀取緩存的內存大小write_buffer = 8M [mysqld_safe]#增加每個進程的可打開文件數量.open-files-limit = 8192
3、停止MySQL
輸入:net stop mysql
4、初始化MySQL數據
輸入:
mysqld --initialize --user=mysql --character-set-server=utf8 --collation-server=utf8_general_ci --initialize-insecure
六、MySQL用戶設置
1、創建danxiaonuo用戶
mysql> CREATE USER 'danxiaonuo'@'%' IDENTIFIED BY '123456';
更新緩存
mysql> FLUSH PRIVILEGES;
2、全部權限授權danxiaonuo用戶
mysql> GRANT ALL PRIVILEGES ON *.* TO 'danxiaonuo'@'%' WITH GRANT OPTION;
更新緩存
mysql> FLUSH PRIVILEGES;
3、更改danxiaonuo用戶密碼
mysql>ALTER USER 'danxiaonuo'@'%' IDENTIFIED BY '654321';
更新緩存
mysql> FLUSH PRIVILEGES;
4、刪除danxiaonuo用戶
mysql> DROP USER 'danxiaonuo'@'%';
更新緩存
mysql> FLUSH PRIVILEGES;
5、查看所有用戶
mysql>SELECT HOST,USER FROM mysql.USER;
七、安裝MySQL系統服務和卸載MySQL系統服務
1、安裝MySQL系統服務
1>自動安裝
輸入:
mysqld -install
2>增加參數安裝
mysqld -install MySQL --defaults-file="C:/Program Files/MySQL/MySQL Server 5.7/my.ini"
2、卸載MySQL系統服務
先停止MySQL系統服務
輸入:net stop mysql
再卸載MySQL系統服務
輸入:mysqld -remove
新聞熱點
疑難解答
圖片精選