Saya ingin memiliki di PC saya (dengan Windows 8.1 x64) hanya server MySQL, tanpa Workbench atau sesuatu. Jadi saya mengunduh .zip
arsip dari dev.mysql.com/downloads . Ini adalah unduhan untuk Win64 pada x86_64 versi 5.7.9 (MySQL Community Server (GPL)).
Saya menginstalnya sebagai layanan Windows, tetapi tidak ada mysql
database, hanya information_schema
. Jadi saya melakukan ini:
mysql_upgrade.exe --upgrade-system-tables
Dan mysql
database dibuat. Tetapi seiring dengan itu terjadi sesuatu dengan pengguna root, karena saya tidak dapat mengakses mysql
lagi.
Jadi saya memutuskan untuk mereset kata sandi yang tiba-tiba muncul ini (karena saya belum memilikinya sebelumnya). Saya menemukan solusi berikut dalam manual resmi, saya memulai server seperti ini:
mysqld.exe --skip-grant-tables --console
Kemudian saya membuka mysql
tanpa kata sandi:
mysql.exe –u root
Dan kemudian mencoba mengatur ulang kata sandi root:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘passhere');
Tapi saya mendapat kesalahan ini:
GALAT 1131 (42000): Anda menggunakan MySQL sebagai pengguna anonim dan pengguna anonim tidak diizinkan mengubah kata sandi ".
Apa ini? Bagaimana saya anonim? Semua perintah dijalankan di cmd.exe
bawah Administrator.
Apa yang harus saya lakukan untuk mereset kata sandi root dalam situasi ini?
Pembaruan 1: Saya mencoba memeriksa pengguna saat ini:
SELECT USER(), CURRENT_USER();
Itu memberi:
+--------+----------------+
| USER() | CURRENT_USER() |
+--------+----------------+
| root@ | @ |
+--------+----------------+
Aneh, karena saya memulainya mysql.exe -u root
.
Lalu saya memeriksa tabel pengguna:
SELECT user FROM mysql.user;
Itu memberi:
+-----------+
| user |
+-----------+
| mysql.sys |
+-----------+
Itu bahkan lebih aneh. Juga tidak ada bidang kata sandi:
SELECT user, password FROM mysql.user;
GALAT 1054 (42S22): 'Kata sandi' kolom tidak dikenal di 'daftar bidang'
Jadi saya tidak bisa mengubah kata sandinya.
Dan saya tidak dapat membuat pengguna baru:
CREATE USER 'root'@'localhost' IDENTIFIED BY 'passhere';
GALAT 1290 (HY000): Server MySQL berjalan dengan
--skip-grant-tables
opsi sehingga tidak dapat menjalankan pernyataan ini
Sekarang saya tersesat.
Pembaruan 2: Saya kira, saya melakukan kesalahan sejak awal. Rupanya, mysqld.exe --initialize
entah bagaimana saya melewatkan perintah.
Jadi, ini adalah bagaimana saya menginstal MySQL dari .zip-archive, terima kasih kepada @RolandoMySQLDBA :
- Buka arsip, siapkan
my.ini
. - Jalankan
mysqld.exe --initialize
, dapatkan kata sandi sementara dari.err
file. Instal MySQL sebagai layanan dan jalankan
mysqld --install MySQL --defaults-file="d:/path/to/mysql/my.ini"
Hubungkan
mysql -u root -p
dengan kata sandi sementara.Ubah kata sandi sementara:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';