Saya ingin memiliki di PC saya (dengan Windows 8.1 x64) hanya server MySQL, tanpa Workbench atau sesuatu. Jadi saya mengunduh .ziparsip 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 mysqldatabase, hanya information_schema. Jadi saya melakukan ini:
mysql_upgrade.exe --upgrade-system-tables
Dan mysqldatabase dibuat. Tetapi seiring dengan itu terjadi sesuatu dengan pengguna root, karena saya tidak dapat mengakses mysqllagi.
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 mysqltanpa 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.exebawah 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-tablesopsi sehingga tidak dapat menjalankan pernyataan ini
Sekarang saya tersesat.
Pembaruan 2: Saya kira, saya melakukan kesalahan sejak awal. Rupanya, mysqld.exe --initializeentah 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.errfile. Instal MySQL sebagai layanan dan jalankan
mysqld --install MySQL --defaults-file="d:/path/to/mysql/my.ini"Hubungkan
mysql -u root -pdengan kata sandi sementara.Ubah kata sandi sementara:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';