記錄 MySQL 5.7.12 全新安裝過程,針對網路上常見教學遺漏的關鍵步驟(skip-grant-tables、--initialize、authentication_string 欄位變更)詳細說明。
mysql-5.7.12-winx64.zip。C:\job\mysql-5.7.12-winx64。my.ini(關鍵配置)[client] default-character-set=utf8 [mysqld] port=3306 basedir="C:\job\mysql-5.7.12-winx64/" datadir="C:\job\mysql-5.7.12-winx64/data/" tmpdir="C:\job\mysql-5.7.12-winx64/data/" socket="C:\job\mysql-5.7.12-winx64/data/mysql.sock" log-error="C:\job\mysql-5.7.12-winx64/data/mysql_error.log" max_connections=100 table_open_cache=256 query_cache_size=1M tmp_table_size=32M thread_cache_size=8 innodb_data_home_dir="C:\job\mysql-5.7.12-winx64/data/" innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=128M innodb_buffer_pool_size=128M innodb_log_file_size=10M innodb_thread_concurrency=16 innodb-autoextend-increment=1000 join_buffer_size=128M sort_buffer_size=32M read_rnd_buffer_size=32M max_allowed_packet=32M explicit_defaults_for_timestamp=true sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" skip-grant-tables # 關鍵:允許無密碼登入以修改密碼
Path 加入 C:\job\mysql-5.7.12-winx64\bin;
cd C:\Windows\System32 # 以管理員開啟 CMD mysqld install MySQL --defaults-file="C:\job\mysql-5.7.12-winx64\my.ini" # 移除服務:mysqld remove
C:\job\mysql-5.7.12-winx64\bin> mysqld --initialize # 未初始化會導致服務無法啟動(坑一)
net start mysql net stop mysql
mysql -u root
SHOW DATABASES;
USE mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('12345') WHERE user='root' AND Host='localhost';
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
FLUSH PRIVILEGES;
QUIT
坑二:5.7 user 表無 Password 欄位,加密密碼存於 authentication_string。
mysql -u root -p12345 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345' WITH GRANT OPTION; FLUSH PRIVILEGES; QUIT