Windows Server 2012 R2安裝MySQL 5.7
阿新 • • 發佈:2019-02-16
- 在官網下載最新版(5.7)的mysql資料庫,32位的有直接安裝的版本,然而64位的只有一個ZIP Archive
- 下載好後,將其解壓,我直接裝C盤,所以接下來都是以C盤為安裝目錄,如果安在別的盤,要自己更改相應的目錄.
- 將
my-default.ini
這個配置檔案複製一份,命名為my.ini
,嘗試了許多種檔案內容之後,用以下的檔案內容可以成功安裝.mysql的資料夾中是沒有data這個資料夾的,後續會提到.
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
default-character-set=utf8
port=3306
[mysqld]
port=3306
character_set_server=utf8
basedir ="C:\Program Files (x86)\mysql-5.7.14-winx64"
datadir ="C:\Program Files (x86)\mysql-5.7.14-winx64/data/"
tmpdir ="C:\Program Files (x86)\mysql-5.7.14-winx64/data/"
socket ="C:\Program Files (x86)\mysql-5.7.14-winx64/data/mysql.sock"
log-error="C:\Program Files (x86)\mysql-5.7.14-winx64/data/mysql_error.log"
character_set_server=utf8
#server_id = 2
#skip-locking
max_connections=100
table_open_cache=256
query_cache_size=1M
tmp_table_size=32M
thread_cache_size=8
innodb_data_home_dir="C:\Program Files (x86)\mysql-5.7.14-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"
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES`
- 接下來新增環境變數,將 解壓下來的檔案中的bin資料夾設定成為環境變數,我的是
C:\Program Files (x86)\mysql-5.7.14-winx64\bin
- 接下來是重點,到DOS進入到mysql的bin資料夾中!!輸入以下命令
1. mysqld --console
2. mysqld --initialize
3. mysqld install
可能會有各種各樣的問題,自己看看問題原因再谷歌找找解決辦法.到這裡基本就安裝完了.
6 . 接下來是修改root密碼.這裡可能會有一些亂七八糟的問題.
1. 到配置檔案中,即之前的my.ini
中, 在[mysqld]下新增一行skip-grant-tables
這個引數顧名思義,忽略授權表,再忘記root密碼的時候,這是個很有用的引數.
2. 啟動MySQL, 在DOS中輸入 mysql -uroot -p
u就是user,p自然就是password,記得u和p與後面的使用者名稱密碼間不要有空格.這裡回車後,會讓你輸入一個密碼,隨便輸入一個你的密碼就可以.
3. mysql> update mysql.user set authentication_string=password('123qaz') where user='root' and Host = 'localhost';
括號中是自己的密碼.記得結尾有個分號.
4. mysql> flush privileges;
5. mysql> quit;
6. 回到配置檔案中,刪除skip-grant-tables
這一行,儲存重啟mysql即可.
7. 之後修改密碼,使用mysql>SET PASSWORD = PASSWORD('123456');
遠端登入配置
- 先使用
mysql -uroot -p
登入資料庫 - 進行授權操作 :
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
過載授權表:
mysql>FLUSH PRIVILEGES;
Access denied for user \’root\’@\’localhost\’”解決方法
解決辦法就是重置一個新的密碼
- 先停止mysql的執行.
- 建立一個文字文件,內容為
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Password');
括號內填寫新的密碼,檔名任意,自己知道就好.儲存在C盤.C:\pw.txt
- 到MySQL目錄的bin資料夾內執行mysqld
C:>C:\Program Files (x86)\mysql-5.7.14-winx64\bin\mysqld -nt --init-file=C:\pw.txt
.這樣,mysql啟動的時候,就會執行pw.txt中的語句,它將重置root密碼.如果卡死在這裡,直接ctrl+c
結束任務,再來一次即可.記得成功啟動後刪除pw.txt
檔案 - 再按照普通的方法啟動即可.