Apa saja masalah yang dapat terjadi saat menjalankan skrip mysql_install_db?

Setelah menginstal MySQL, ada beberapa masalah yang harus Anda tangani. Misalnya, di Unix, Anda harus menginisialisasi direktori data dan membuat tabel hibah MySQL. Di semua platform, masalah keamanan yang penting adalah bahwa akun awal di tabel hibah tidak memiliki kata sandi. Anda harus menetapkan kata sandi untuk mencegah akses tidak sah ke server MySQL. Opsional, Anda dapat membuat tabel zona waktu untuk mengaktifkan pengenalan zona waktu bernama

Bagian berikut mencakup prosedur pasca-instalasi yang khusus untuk sistem Windows dan sistem Unix. Bagian lain, , berlaku untuk semua platform; . , juga berlaku untuk semua platform. Anda harus mengikuti petunjuknya untuk memastikan bahwa Anda telah melindungi akun MySQL Anda dengan benar dengan menetapkan kata sandi untuk akun tersebut

2. 10. 1. Prosedur Pasca-Instalasi Windows

Di Windows, direktori data dan tabel hibah tidak harus dibuat. Distribusi MySQL Windows menyertakan tabel hibah dengan sekumpulan akun yang telah diprainisialisasi di database

mysqld: Can't find file: 'host.frm'
7 di bawah direktori data. Tidak perlu menjalankan skrip mysql_install_db yang digunakan di Unix. Mengenai kata sandi, jika Anda menginstal MySQL menggunakan Wisaya Instalasi Windows, Anda mungkin telah menetapkan kata sandi ke akun. (Lihat. ) Jika tidak, gunakan prosedur penetapan kata sandi yang diberikan di

Sebelum mengatur kata sandi, Anda mungkin ingin mencoba menjalankan beberapa program klien untuk memastikan bahwa Anda dapat terhubung ke server dan beroperasi dengan benar. Pastikan server sedang berjalan (lihat ), lalu keluarkan perintah berikut untuk memverifikasi bahwa Anda dapat mengambil informasi dari server. Outputnya harus mirip dengan apa yang ditampilkan di sini

C:\> C:\mysql\bin\mysqlshow
+-----------+
| Databases |
+-----------+
| mysql     |
| test      |
+-----------+

C:\> C:\mysql\bin\mysqlshow mysql
Database: mysql
+---------------------------+
|          Tables           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

C:\> C:\mysql\bin\mysql -e "SELECT Host,Db,User FROM db" mysql
+------+-------+------+
| host | db    | user |
+------+-------+------+
| %    | test% |      |
+------+-------+------+
_

Jika Anda menjalankan versi Windows yang mendukung layanan dan Anda ingin server MySQL berjalan secara otomatis saat Windows dijalankan, lihat

2. 10. 2. Prosedur Pasca-Instalasi Unix

Setelah menginstal MySQL di Unix, Anda perlu menginisialisasi tabel hibah, memulai server, dan memastikan server berfungsi dengan baik. Anda mungkin juga ingin mengatur agar server dimulai dan dihentikan secara otomatis saat sistem Anda mulai dan berhenti. Anda juga harus menetapkan kata sandi ke akun di tabel hibah

Di Unix, tabel hibah diatur oleh program mysql_install_db. Untuk beberapa metode penginstalan, program ini dijalankan untuk Anda secara otomatis

  • Jika Anda menginstal MySQL di Linux menggunakan distribusi RPM, RPM server menjalankan mysql_install_db

  • Jika Anda menginstal MySQL di Mac OS X menggunakan distribusi PKG, penginstal akan menjalankan mysql_install_db

Jika tidak, Anda harus menjalankan mysql_install_db sendiri

Prosedur berikut menjelaskan cara menginisialisasi tabel hibah (jika sebelumnya belum pernah dilakukan) dan kemudian memulai server. Itu juga menyarankan beberapa perintah yang dapat Anda gunakan untuk menguji apakah server dapat diakses dan berfungsi dengan baik. Untuk informasi tentang memulai dan menghentikan server secara otomatis, lihat

Setelah Anda menyelesaikan prosedur dan menjalankan server, Anda harus menetapkan kata sandi ke akun yang dibuat oleh mysql_install_db. Instruksi untuk melakukannya diberikan di

Dalam contoh yang ditampilkan di sini, server berjalan di bawah ID pengguna dari akun masuk

mysqld: Can't find file: 'host.frm'
7. Ini mengasumsikan bahwa akun seperti itu ada. Buat akun jika tidak ada, atau ganti nama akun masuk lain yang sudah ada yang Anda rencanakan untuk digunakan untuk menjalankan server

  1. Ubah lokasi menjadi direktori tingkat atas dari instalasi MySQL Anda, diwakili di sini oleh

    mysqld: Can't find file: 'host.frm'
    
    9

    shell> cd BASEDIR
    
    _

    mysqld: Can't find file: 'host.frm'
    
    _9 mungkin seperti
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    1 atau
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    2. Langkah-langkah berikut mengasumsikan bahwa Anda berada di direktori ini

  2. Jika perlu, jalankan program mysql_install_db untuk menyiapkan tabel hibah MySQL awal yang berisi hak istimewa yang menentukan cara pengguna diizinkan untuk terhubung ke server. Anda harus melakukan ini jika Anda menggunakan tipe distribusi yang prosedur penginstalannya tidak menjalankan program untuk Anda

    Biasanya, mysql_install_db perlu dijalankan hanya saat pertama kali Anda menginstal MySQL, sehingga Anda dapat melewati langkah ini jika Anda memutakhirkan instalasi yang sudah ada. Namun, mysql_install_db tidak menimpa tabel hak istimewa yang ada, sehingga aman untuk dijalankan dalam keadaan apa pun

    Untuk menginisialisasi tabel hibah, gunakan salah satu dari perintah berikut, tergantung pada apakah mysql_install_db terletak di direktori

    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    3 atau
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    4

    shell> bin/mysql_install_db --user=mysql
    shell> scripts/mysql_install_db --user=mysql
    

    Skrip mysql_install_db membuat direktori data server. Di bawah direktori data, ini membuat direktori untuk database

    mysqld: Can't find file: 'host.frm'
    
    7 yang menampung semua hak istimewa database dan database
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    6 yang dapat Anda gunakan untuk menguji MySQL. Skrip juga membuat entri tabel hak istimewa untuk
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7 dan akun pengguna anonim. Akun tidak memiliki kata sandi pada awalnya. Deskripsi tentang hak istimewa awal mereka diberikan di. Secara singkat, hak istimewa ini memungkinkan pengguna MySQL
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7 untuk melakukan apa saja, dan mengizinkan siapa saja untuk membuat atau menggunakan database dengan nama
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    6 atau dimulai dengan
    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    
    0

    Penting untuk memastikan bahwa direktori database dan file dimiliki oleh akun login

    mysqld: Can't find file: 'host.frm'
    
    7 sehingga server memiliki akses baca dan tulis ke akun tersebut saat Anda menjalankannya nanti. Untuk memastikan ini, opsi
    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    
    _2 harus digunakan seperti yang ditunjukkan jika Anda menjalankan mysql_install_db sebagai
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7. Jika tidak, Anda harus menjalankan skrip saat masuk sebagai
    mysqld: Can't find file: 'host.frm'
    
    7, dalam hal ini Anda dapat menghilangkan opsi
    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    
    2 dari perintah

    mysql_install_db membuat beberapa tabel di database

    mysqld: Can't find file: 'host.frm'
    
    7, termasuk
    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    
    7,
    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    
    8,
    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    
    9,
    shell> bin/mysqladmin -u root shutdown
    
    0,
    shell> bin/mysqladmin -u root shutdown
    
    1,
    shell> bin/mysqladmin -u root shutdown
    
    2, dan lainnya. Lihat Bagian 5. 8, “Sistem Hak Istimewa Akses MySQL”, untuk daftar lengkap dan deskripsi tabel-tabel ini

    Jika Anda tidak ingin memiliki database

    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    _6, Anda dapat menghapusnya dengan mysqladmin -u root drop test setelah memulai server

    Jika Anda mengalami masalah dengan mysql_install_db saat ini, lihat

  3. Mulai server MySQL

    shell> bin/mysqld_safe --user=mysql &
    

    Penting agar server MySQL dijalankan menggunakan akun login unprivileged (non-

    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7). Untuk memastikan ini, opsi
    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    
    _2 harus digunakan seperti yang ditunjukkan jika Anda menjalankan
    shell> bin/mysqladmin -u root shutdown
    
    6 sebagai sistem
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7. Jika tidak, Anda harus menjalankan skrip saat masuk ke sistem sebagai
    mysqld: Can't find file: 'host.frm'
    
    7, dalam hal ini Anda dapat menghilangkan opsi
    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    
    2 dari perintah

    Instruksi lebih lanjut untuk menjalankan MySQL sebagai pengguna yang tidak memiliki hak diberikan di

    Jika Anda lalai membuat tabel hibah sebelum melanjutkan ke langkah ini, pesan berikut muncul di file log kesalahan saat Anda memulai server

    mysqld: Can't find file: 'host.frm'
    

    Jika Anda memiliki masalah lain saat memulai server, lihat

  4. Gunakan mysqladmin untuk memverifikasi bahwa server sedang berjalan. Perintah berikut memberikan tes sederhana untuk memeriksa apakah server aktif dan merespons koneksi

    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    _

    Output dari versi mysqladmin sedikit berbeda tergantung pada platform dan versi MySQL Anda, tetapi harus serupa dengan yang ditampilkan di sini

    shell> bin/mysqladmin version
    mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
    Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.0.25-Max
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/lib/mysql/mysql.sock
    Uptime:                 14 days 5 hours 5 min 21 sec
    
    Threads: 1  Questions: 366  Slow queries: 0
    Opens: 0  Flush tables: 1  Open tables: 19
    Queries per second avg: 0.000
    

    Untuk melihat apa lagi yang dapat Anda lakukan dengan mysqladmin, aktifkan dengan opsi

    shell> bin/mysqld_safe --user=mysql --log &
    
    0

  5. Verifikasi bahwa Anda dapat mematikan server

    shell> bin/mysqladmin -u root shutdown
    
  6. Verifikasi bahwa Anda dapat memulai server lagi. Lakukan ini dengan menggunakan mysqld_safe atau dengan mengaktifkan mysqld secara langsung. Sebagai contoh

    shell> bin/mysqld_safe --user=mysql --log &
    

    Jika mysqld_safe gagal, lihat

  7. Jalankan beberapa tes sederhana untuk memverifikasi bahwa Anda dapat mengambil informasi dari server. Outputnya harus mirip dengan apa yang ditampilkan di sini

    shell> bin/mysqlshow
    +-----------+
    | Databases |
    +-----------+
    | mysql     |
    | test      |
    +-----------+
    
    shell> bin/mysqlshow mysql
    Database: mysql
    +---------------------------+
    |          Tables           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | func                      |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | host                      |
    | proc                      |
    | procs_priv                |
    | tables_priv               |
    | time_zone                 |
    | time_zone_leap_second     |
    | time_zone_name            |
    | time_zone_transition      |
    | time_zone_transition_type |
    | user                      |
    +---------------------------+
    
    shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql
    +------+--------+------+
    | host | db     | user |
    +------+--------+------+
    | %    | test   |      |
    | %    | test_% |      |
    +------+--------+------+
    
  8. Ada benchmark suite di direktori

    shell> bin/mysqld_safe --user=mysql --log &
    
    _1 (di bawah direktori instalasi MySQL) yang dapat Anda gunakan untuk membandingkan kinerja MySQL pada platform yang berbeda. Suite patokan ditulis dalam Perl. Ini membutuhkan modul DBI Perl yang menyediakan antarmuka database-independen ke berbagai database, dan beberapa modul Perl tambahan lainnya

    shell> cd BASEDIR
    
    _0

    Modul-modul ini dapat diperoleh dari CPAN (http. // www. cpan. org/). Lihat juga

    Direktori

    shell> bin/mysqld_safe --user=mysql --log &
    
    _2 berisi hasil dari banyak proses pada database dan platform yang berbeda. Untuk menjalankan semua tes, jalankan perintah ini

    shell> cd BASEDIR
    
    _1

    Jika Anda tidak memiliki direktori

    shell> bin/mysqld_safe --user=mysql --log &
    
    1, Anda mungkin menginstal MySQL menggunakan file RPM selain RPM sumber. (RPM sumber menyertakan direktori benchmark
    shell> bin/mysqld_safe --user=mysql --log &
    
    1. ) Dalam hal ini, Anda harus menginstal benchmark suite terlebih dahulu sebelum dapat menggunakannya. Ada file benchmark RPM terpisah bernama
    shell> bin/mysqld_safe --user=mysql --log &
    
    5
    shell> bin/mysqld_safe --user=mysql --log &
    
    6-i386. rpm yang berisi kode benchmark dan data

    Jika Anda memiliki distribusi sumber, ada juga tes di subdirektori

    shell> bin/mysqld_safe --user=mysql --log &
    
    7 yang dapat Anda jalankan. Misalnya, untuk menjalankan
    shell> bin/mysqld_safe --user=mysql --log &
    
    8, jalankan perintah ini dari direktori tingkat atas distribusi sumber Anda

    shell> cd BASEDIR
    
    _2

    Hasil tes yang diharapkan dapat ditemukan di file

    shell> bin/mysqld_safe --user=mysql --log &
    
    9

  9. Pada titik ini, Anda harus menjalankan server. Namun, tidak ada akun MySQL awal yang memiliki kata sandi, jadi Anda harus menetapkan kata sandi menggunakan petunjuk yang ada di

MySQL5. 0 prosedur instalasi membuat tabel zona waktu di database

mysqld: Can't find file: 'host.frm'
7. Namun, Anda harus mengisi tabel secara manual menggunakan petunjuk di

2. 10. 2. 1. Masalah Menjalankan mysql_install_db

Tujuan dari skrip mysql_install_db adalah untuk menghasilkan tabel hak istimewa MySQL baru. Itu tidak menimpa tabel hak istimewa MySQL yang ada, dan tidak memengaruhi data lainnya

Jika Anda ingin membuat ulang tabel hak istimewa Anda, pertama-tama hentikan server mysqld jika sedang berjalan. Kemudian ganti nama direktori

mysqld: Can't find file: 'host.frm'
_7 di bawah direktori data untuk menyimpannya, lalu jalankan mysql_install_db. Misalkan direktori Anda saat ini adalah direktori instalasi MySQL dan mysql_install_db terletak di direktori
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
3 dan direktori data bernama
shell> bin/mysqlshow
+-----------+
| Databases |
+-----------+
| mysql     |
| test      |
+-----------+

shell> bin/mysqlshow mysql
Database: mysql
+---------------------------+
|          Tables           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql
+------+--------+------+
| host | db     | user |
+------+--------+------+
| %    | test   |      |
| %    | test_% |      |
+------+--------+------+
3. Untuk mengganti nama
mysqld: Can't find file: 'host.frm'
7 database dan menjalankan kembali mysql_install_db, gunakan perintah ini

shell> cd BASEDIR
_3

Saat Anda menjalankan mysql_install_db, Anda mungkin mengalami masalah berikut

  • mysql_install_db gagal menginstal tabel hibah

    Anda mungkin menemukan bahwa mysql_install_db gagal menginstal tabel hibah dan berhenti setelah menampilkan pesan berikut

    shell> cd BASEDIR
    
    _4

    Dalam hal ini, Anda harus memeriksa file log kesalahan dengan sangat hati-hati. Log harus ditempatkan di direktori

    shell> bin/mysqlshow
    +-----------+
    | Databases |
    +-----------+
    | mysql     |
    | test      |
    +-----------+
    
    shell> bin/mysqlshow mysql
    Database: mysql
    +---------------------------+
    |          Tables           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | func                      |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | host                      |
    | proc                      |
    | procs_priv                |
    | tables_priv               |
    | time_zone                 |
    | time_zone_leap_second     |
    | time_zone_name            |
    | time_zone_transition      |
    | time_zone_transition_type |
    | user                      |
    +---------------------------+
    
    shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql
    +------+--------+------+
    | host | db     | user |
    +------+--------+------+
    | %    | test   |      |
    | %    | test_% |      |
    +------+--------+------+
    
    5 yang dinamai oleh pesan kesalahan dan harus menunjukkan mengapa mysqld tidak dimulai. Jika Anda tidak mengerti apa yang terjadi, sertakan log saat Anda memposting laporan bug. Lihat Bagian 1. 8, “Cara Melaporkan Bug atau Masalah”

  • Ada proses mysqld berjalan

    Ini menunjukkan bahwa server sedang berjalan, dalam hal ini tabel hibah mungkin sudah dibuat. Jika demikian, tidak perlu menjalankan mysql_install_db sama sekali karena hanya perlu dijalankan sekali (ketika Anda menginstal MySQL pertama kali)

  • Menginstal server mysqld kedua tidak berfungsi saat satu server sedang berjalan

    Hal ini dapat terjadi ketika Anda sudah memiliki instalasi MySQL, tetapi ingin menempatkan instalasi baru di lokasi yang berbeda. Misalnya, Anda mungkin memiliki penginstalan produksi, namun Anda ingin membuat penginstalan kedua untuk tujuan pengujian. Umumnya masalah yang terjadi saat mencoba menjalankan server kedua adalah mencoba menggunakan antarmuka jaringan yang sedang digunakan oleh server pertama. Dalam hal ini, Anda akan melihat salah satu pesan kesalahan berikut

    shell> cd BASEDIR
    
    _5

    Untuk petunjuk penyiapan beberapa server, lihat Bagian 5. 13, “Menjalankan Banyak Server MySQL di Mesin yang Sama”

  • Anda tidak memiliki akses tulis ke direktori

    shell> bin/mysqlshow
    +-----------+
    | Databases |
    +-----------+
    | mysql     |
    | test      |
    +-----------+
    
    shell> bin/mysqlshow mysql
    Database: mysql
    +---------------------------+
    |          Tables           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | func                      |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | host                      |
    | proc                      |
    | procs_priv                |
    | tables_priv               |
    | time_zone                 |
    | time_zone_leap_second     |
    | time_zone_name            |
    | time_zone_transition      |
    | time_zone_transition_type |
    | user                      |
    +---------------------------+
    
    shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql
    +------+--------+------+
    | host | db     | user |
    +------+--------+------+
    | %    | test   |      |
    | %    | test_% |      |
    +------+--------+------+
    
    6

    Jika Anda tidak memiliki akses tulis untuk membuat file sementara atau file soket Unix di lokasi default (direktori

    shell> bin/mysqlshow
    +-----------+
    | Databases |
    +-----------+
    | mysql     |
    | test      |
    +-----------+
    
    shell> bin/mysqlshow mysql
    Database: mysql
    +---------------------------+
    |          Tables           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | func                      |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | host                      |
    | proc                      |
    | procs_priv                |
    | tables_priv               |
    | time_zone                 |
    | time_zone_leap_second     |
    | time_zone_name            |
    | time_zone_transition      |
    | time_zone_transition_type |
    | user                      |
    +---------------------------+
    
    shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql
    +------+--------+------+
    | host | db     | user |
    +------+--------+------+
    | %    | test   |      |
    | %    | test_% |      |
    +------+--------+------+
    
    6), kesalahan terjadi saat Anda menjalankan mysql_install_db atau server mysqld

    Anda dapat menentukan lokasi yang berbeda untuk direktori sementara dan file soket Unix dengan menjalankan perintah ini sebelum memulai mysql_install_db atau mysqld, di mana

    shell> bin/mysqlshow
    +-----------+
    | Databases |
    +-----------+
    | mysql     |
    | test      |
    +-----------+
    
    shell> bin/mysqlshow mysql
    Database: mysql
    +---------------------------+
    |          Tables           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | func                      |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | host                      |
    | proc                      |
    | procs_priv                |
    | tables_priv               |
    | time_zone                 |
    | time_zone_leap_second     |
    | time_zone_name            |
    | time_zone_transition      |
    | time_zone_transition_type |
    | user                      |
    +---------------------------+
    
    shell> bin/mysql -e "SELECT Host,Db,User FROM db" mysql
    +------+--------+------+
    | host | db     | user |
    +------+--------+------+
    | %    | test   |      |
    | %    | test_% |      |
    +------+--------+------+
    
    8 adalah pathname lengkap ke beberapa direktori yang Anda memiliki izin menulis

    shell> cd BASEDIR
    
    _6

    Maka Anda harus dapat menjalankan mysql_install_db dan memulai server dengan perintah ini

    shell> cd BASEDIR
    
    _7

    Jika mysql_install_db terletak di direktori

    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    4, ubah perintah pertama menjadi
    shell> cd BASEDIR
    
    00

    Lihat , dan Apendiks F, Variabel Lingkungan

Ada beberapa alternatif untuk menjalankan skrip mysql_install_db yang disediakan dalam distribusi MySQL

  • Jika Anda ingin hak istimewa awal berbeda dari default standar, Anda dapat memodifikasi mysql_install_db sebelum Anda menjalankannya. Namun, sebaiknya gunakan

    shell> cd BASEDIR
    
    _01 dan
    shell> cd BASEDIR
    
    02 untuk mengubah hak istimewa setelah tabel hibah disiapkan. Dengan kata lain, Anda dapat menjalankan mysql_install_db, lalu menggunakan
    shell> cd BASEDIR
    
    03 untuk terhubung ke server sebagai pengguna MySQL
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7 sehingga Anda dapat mengeluarkan pernyataan
    shell> cd BASEDIR
    
    01 dan
    shell> cd BASEDIR
    
    02 yang diperlukan

    Jika Anda ingin menginstal MySQL pada beberapa mesin dengan hak istimewa yang sama, Anda dapat menempatkan pernyataan

    shell> cd BASEDIR
    
    01 dan
    shell> cd BASEDIR
    
    02 dalam file dan mengeksekusi file sebagai skrip menggunakan
    mysqld: Can't find file: 'host.frm'
    
    7 setelah menjalankan mysql_install_db. Sebagai contoh

    shell> cd BASEDIR
    
    _8

    Dengan melakukan ini, Anda dapat menghindari keharusan mengeluarkan pernyataan secara manual di setiap mesin

  • Dimungkinkan untuk membuat ulang tabel hibah sepenuhnya setelah dibuat sebelumnya. Anda mungkin ingin melakukan ini jika Anda baru mempelajari cara menggunakan

    shell> cd BASEDIR
    
    01 dan
    shell> cd BASEDIR
    
    02 dan telah membuat begitu banyak modifikasi setelah menjalankan mysql_install_db sehingga Anda ingin menghapus tabel dan memulai kembali

    Untuk membuat ulang tabel hibah, hapus semua file

    shell> cd BASEDIR
    
    12,
    shell> cd BASEDIR
    
    13, dan
    shell> cd BASEDIR
    
    14 di direktori database
    mysqld: Can't find file: 'host.frm'
    
    7. Kemudian jalankan skrip mysql_install_db lagi

  • Anda dapat memulai mysqld secara manual menggunakan opsi

    shell> cd BASEDIR
    
    16 dan menambahkan sendiri informasi hak istimewa menggunakan mysql

    shell> cd BASEDIR
    
    _9

    Dari mysql, jalankan secara manual perintah SQL yang ada di mysql_install_db. Pastikan Anda menjalankan mysqladmin flush-privileges atau mysqladmin reload sesudahnya untuk memberi tahu server agar memuat ulang tabel hibah

    Perhatikan bahwa dengan tidak menggunakan mysql_install_db, Anda tidak hanya harus mengisi tabel hibah secara manual, Anda juga harus membuatnya terlebih dahulu

2. 10. 2. 2. Memulai dan Menghentikan MySQL Secara Otomatis

Umumnya, Anda memulai server mysqld dengan salah satu cara berikut

  • Dengan memanggil mysqld secara langsung. Ini berfungsi pada platform apa pun

  • Dengan menjalankan server MySQL sebagai layanan Windows. Ini dapat dilakukan pada versi Windows yang mendukung layanan (seperti NT, 2000, XP, dan 2003). Layanan dapat diatur untuk memulai server secara otomatis saat Windows dimulai, atau sebagai layanan manual yang Anda mulai berdasarkan permintaan. Untuk instruksi, lihat

  • Dengan menjalankan mysqld_safe, yang mencoba menentukan opsi yang tepat untuk mysqld dan kemudian menjalankannya dengan opsi tersebut. Skrip ini digunakan pada sistem Unix dan Unix-like. Lihat

  • Dengan memanggil mysql. server. Skrip ini digunakan terutama saat startup dan shutdown sistem pada sistem yang menggunakan direktori run gaya Sistem V, yang biasanya diinstal dengan nama

    mysqld: Can't find file: 'host.frm'
    
    7. mysql. skrip server memulai server dengan menjalankan mysqld_safe. Lihat

  • Di Mac OS X, Anda dapat menginstal paket Item Startup MySQL terpisah untuk mengaktifkan startup otomatis MySQL pada startup sistem. Item Startup memulai server dengan menjalankan mysql. server. Lihat Bagian 2. 5, “Menginstal MySQL di Mac OS X”, untuk detailnya

mysqld_safe dan mysql. skrip server dan Item Startup Mac OS X dapat digunakan untuk memulai server secara manual, atau secara otomatis pada waktu startup sistem. mysql. server dan Startup Item juga dapat digunakan untuk menghentikan server

Untuk memulai atau menghentikan server secara manual menggunakan mysql. skrip server, aktifkan dengan

shell> cd BASEDIR
18 atau
shell> cd BASEDIR
19 argumen

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_0

Sebelum mysql. server memulai server, mengubah lokasi ke direktori instalasi MySQL, dan kemudian memanggil mysqld_safe. Jika Anda ingin server dijalankan sebagai pengguna tertentu, tambahkan opsi

shell> bin/mysqladmin version
mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.0.25-Max
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 14 days 5 hours 5 min 21 sec

Threads: 1  Questions: 366  Slow queries: 0
Opens: 0  Flush tables: 1  Open tables: 19
Queries per second avg: 0.000
7 yang sesuai ke grup
shell> cd BASEDIR
21 dari file opsi
shell> cd BASEDIR
22, seperti yang ditunjukkan nanti di bagian ini. (Ada kemungkinan Anda perlu mengedit mysql. server jika Anda menginstal distribusi biner MySQL di lokasi yang tidak standar. Ubah ke
shell> cd BASEDIR
23 ke direktori yang tepat sebelum menjalankan mysqld_safe. Jika Anda melakukan ini, versi mysql Anda yang dimodifikasi. server dapat ditimpa jika Anda memutakhirkan MySQL di masa mendatang, jadi Anda harus membuat salinan versi yang telah diedit agar dapat diinstal ulang. )

mysql. server stop menghentikan server dengan mengirimkan sinyal ke sana. Anda juga dapat menghentikan server secara manual dengan menjalankan shutdown mysqladmin

Untuk memulai dan menghentikan MySQL secara otomatis di server Anda, Anda perlu menambahkan perintah start dan stop ke tempat yang sesuai di file

shell> cd BASEDIR
24 Anda

Jika Anda menggunakan paket RPM server Linux (

shell> cd BASEDIR
25
shell> bin/mysqld_safe --user=mysql --log &
6. rpm), mysql. skrip server dipasang di direktori
shell> cd BASEDIR
_27 dengan nama
mysqld: Can't find file: 'host.frm'
7. Anda tidak perlu menginstalnya secara manual. Lihat Bagian 2. 4, “Menginstal MySQL di Linux”, untuk informasi lebih lanjut tentang paket RPM Linux

Beberapa vendor menyediakan paket RPM yang memasang skrip startup dengan nama yang berbeda seperti mysqld

Jika Anda menginstal MySQL dari distribusi sumber atau menggunakan format distribusi biner yang tidak menginstal mysql. server secara otomatis, Anda dapat menginstalnya secara manual. Skrip dapat ditemukan di direktori

shell> cd BASEDIR
_29 di bawah direktori instalasi MySQL atau di pohon sumber MySQL

Untuk menginstal mysql. server secara manual, salin ke direktori

shell> cd BASEDIR
_27 dengan nama mysql, lalu buat agar dapat dieksekusi. Lakukan ini dengan mengubah lokasi menjadi direktori yang sesuai di mana mysql. server berada dan menjalankan perintah ini

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_1

Sistem Red Hat yang lebih lama menggunakan direktori

shell> cd BASEDIR
_31 daripada
shell> cd BASEDIR
27. Sesuaikan perintah sebelumnya sesuai. Alternatifnya, pertama-tama buat
shell> cd BASEDIR
27 sebagai tautan simbolik yang mengarah ke
shell> cd BASEDIR
31

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_2

Setelah menginstal skrip, perintah yang diperlukan untuk mengaktifkannya agar berjalan saat startup sistem bergantung pada sistem operasi Anda. Di Linux, Anda dapat menggunakan

shell> cd BASEDIR
_35

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_3

Pada beberapa sistem Linux, perintah berikut juga diperlukan untuk mengaktifkan sepenuhnya skrip mysql

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_4

Di FreeBSD, skrip startup umumnya harus masuk

shell> cd BASEDIR
36. Halaman manual
shell> cd BASEDIR
37 menyatakan bahwa skrip dalam direktori ini dijalankan hanya jika nama dasarnya cocok dengan pola nama file shell
shell> cd BASEDIR
38. File atau direktori lain yang ada di dalam direktori akan diabaikan secara diam-diam. Dengan kata lain, di FreeBSD, Anda harus menginstal skrip
shell> cd BASEDIR
39 sebagai
shell> cd BASEDIR
40 untuk mengaktifkan startup otomatis

Sebagai alternatif dari penyiapan sebelumnya, beberapa sistem operasi juga menggunakan

shell> cd BASEDIR
41 atau
shell> cd BASEDIR
42 untuk memulai layanan tambahan saat startup. Untuk memulai MySQL menggunakan metode ini, Anda dapat menambahkan perintah seperti berikut ke file startup yang sesuai

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_5

Untuk sistem lain, lihat dokumentasi sistem operasi Anda untuk mengetahui cara menginstal skrip startup

Anda dapat menambahkan opsi untuk mysql. server dalam file

shell> cd BASEDIR
_22 global. File
shell> cd BASEDIR
_22 biasa mungkin terlihat seperti ini

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_6

mysql. skrip server memahami opsi berikut.

shell> cd BASEDIR
_45,
shell> cd BASEDIR
46, dan
shell> cd BASEDIR
47. Jika ditentukan, mereka harus ditempatkan di file opsi, bukan di baris perintah. mysql. server hanya memahami
shell> cd BASEDIR
18 dan
shell> cd BASEDIR
19 sebagai argumen baris perintah

Tabel berikut menunjukkan opsi mana yang mengelompokkan server dan setiap skrip startup yang dibaca dari file opsi

ScriptOption Groupsmysqld

shell> cd BASEDIR
21,
shell> cd BASEDIR
51,
shell> cd BASEDIR
52
shell> cd BASEDIR
53]mysqld_safe
shell> cd BASEDIR
21,
shell> cd BASEDIR
51,
shell> cd BASEDIR
56mysql. server
shell> cd BASEDIR
21,
shell> cd BASEDIR
58,
shell> cd BASEDIR
51

shell> cd BASEDIR
_52
shell> cd BASEDIR
53] berarti grup dengan nama seperti
shell> cd BASEDIR
62 dan
shell> cd BASEDIR
63 dibaca oleh server yang memiliki versi 4. 1. x, 5. 0. x, dan seterusnya. Fitur ini dapat digunakan untuk menentukan opsi yang hanya dapat dibaca oleh server dalam seri rilis tertentu

Untuk kompatibilitas mundur, mysql. server juga membaca grup

shell> cd BASEDIR
64 dan mysqld_safe juga membaca grup
shell> cd BASEDIR
65. Namun, Anda harus memperbarui file opsi untuk menggunakan grup
shell> cd BASEDIR
58 dan
shell> cd BASEDIR
56 saat menggunakan MySQL 5. 0

Lihat

2. 10. 2. 3. Memulai dan Memecahkan Masalah Server MySQL

Bagian ini memberikan saran pemecahan masalah untuk masalah memulai server di Unix. Jika Anda menggunakan Windows, lihat

Jika Anda mengalami masalah saat memulai server, berikut adalah beberapa hal untuk dicoba

  • Periksa log kesalahan untuk melihat mengapa server tidak memulai

  • Tentukan opsi khusus yang diperlukan oleh mesin penyimpanan yang Anda gunakan

  • Pastikan server tahu di mana menemukan direktori data

  • Pastikan bahwa server dapat mengakses direktori data. Kepemilikan dan izin direktori data dan isinya harus diatur sedemikian rupa sehingga server dapat membaca dan memodifikasinya

  • Verifikasi bahwa antarmuka jaringan yang ingin digunakan server tersedia

Beberapa mesin penyimpanan memiliki opsi yang mengontrol perilakunya. Anda dapat membuat file

shell> cd BASEDIR
68 dan menentukan opsi startup untuk mesin yang akan Anda gunakan. Jika Anda akan menggunakan mesin penyimpanan yang mendukung tabel transaksional (
shell> cd BASEDIR
69,
shell> cd BASEDIR
70,
shell> cd BASEDIR
71), pastikan Anda telah mengonfigurasinya seperti yang Anda inginkan sebelum memulai server

Mesin penyimpanan akan menggunakan nilai opsi default jika Anda tidak menentukannya, tetapi disarankan agar Anda meninjau opsi yang tersedia dan menentukan nilai eksplisit untuk opsi yang defaultnya tidak sesuai untuk instalasi Anda

Ketika server mysqld dimulai, itu mengubah lokasi ke direktori data. Di sinilah diharapkan untuk menemukan database dan di mana diharapkan untuk menulis file log. Server juga menulis file pid (process ID) di direktori data

Lokasi direktori data tertanam saat server dikompilasi. Di sinilah server mencari direktori data secara default. Jika direktori data terletak di tempat lain di sistem Anda, server tidak akan berfungsi dengan baik. Anda dapat menentukan pengaturan jalur default dengan mengaktifkan mysqld dengan opsi

shell> cd BASEDIR
72 dan
shell> bin/mysqld_safe --user=mysql --log &
0

Jika lokasi default tidak cocok dengan tata letak instalasi MySQL di sistem Anda, Anda dapat menimpanya dengan menentukan opsi ke mysqld atau mysqld_safe di baris perintah atau di file opsi

Untuk menentukan lokasi direktori data secara eksplisit, gunakan opsi

shell> cd BASEDIR
74. Namun, biasanya Anda dapat memberi tahu mysqld lokasi direktori dasar tempat MySQL diinstal dan mencari direktori data di sana. Anda dapat melakukannya dengan opsi
shell> cd BASEDIR
_75

Untuk memeriksa efek dari menentukan opsi jalur, aktifkan mysqld dengan opsi tersebut diikuti dengan opsi

shell> cd BASEDIR
72 dan
shell> bin/mysqld_safe --user=mysql --log &
0. Misalnya, jika Anda mengubah lokasi menjadi direktori tempat mysqld diinstal dan kemudian menjalankan perintah berikut, ini menunjukkan efek memulai server dengan direktori dasar
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
2

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_7

Anda juga dapat menentukan opsi lain seperti

shell> cd BASEDIR
_74, tetapi
shell> cd BASEDIR
72 dan
shell> bin/mysqld_safe --user=mysql --log &
0 harus menjadi opsi terakhir

Setelah Anda menentukan pengaturan jalur yang Anda inginkan, mulai server tanpa

shell> cd BASEDIR
72 dan
shell> bin/mysqld_safe --user=mysql --log &
0

Jika mysql sedang berjalan, Anda dapat mengetahui pengaturan jalur apa yang digunakannya dengan menjalankan perintah ini

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_8

Atau

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_9

shell> cd BASEDIR
_84 adalah nama host server MySQL

Jika Anda mendapatkan

shell> cd BASEDIR
85 (yang berarti
shell> cd BASEDIR
86) saat memulai mysqld, ini berarti hak istimewa direktori data atau kontennya tidak mengizinkan akses server. Dalam hal ini, Anda mengubah izin untuk file dan direktori yang terlibat sehingga server memiliki hak untuk menggunakannya. Anda juga dapat memulai server sebagai
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
_7, tetapi ini menimbulkan masalah keamanan dan harus dihindari

Di Unix, ubah lokasi menjadi direktori data dan periksa kepemilikan direktori data dan isinya untuk memastikan server memiliki akses. Misalnya, jika direktori data adalah

shell> cd BASEDIR
_88, gunakan perintah ini

shell> bin/mysqld_safe --user=mysql &
0

Jika direktori data atau file atau subdirektorinya tidak dimiliki oleh akun login yang Anda gunakan untuk menjalankan server, ubah kepemilikannya ke akun tersebut. Jika akun bernama

mysqld: Can't find file: 'host.frm'
_7, gunakan perintah ini

shell> bin/mysqld_safe --user=mysql &
1

Jika server gagal memulai dengan benar, periksa log kesalahan. File log terletak di direktori data (biasanya

shell> cd BASEDIR
90 di Windows,
shell> cd BASEDIR
91 untuk distribusi biner Unix, dan
shell> cd BASEDIR
92 untuk distribusi sumber Unix). Lihat di direktori data untuk file dengan nama formulir
shell> cd BASEDIR
93
shell> cd BASEDIR
84. salah dan
shell> cd BASEDIR
93
shell> cd BASEDIR
84. log, di mana
shell> cd BASEDIR
84 adalah nama host server Anda. Kemudian periksa beberapa baris terakhir dari file-file ini. Di Unix, Anda dapat menggunakan
shell> cd BASEDIR
_98 untuk menampilkannya

shell> bin/mysqld_safe --user=mysql &
2

Log kesalahan harus berisi informasi yang menunjukkan mengapa server tidak dapat dimulai. Misalnya, Anda mungkin melihat sesuatu seperti ini di log

shell> bin/mysqld_safe --user=mysql &
3

Ini berarti bahwa Anda tidak memulai mysqld dengan opsi

shell> cd BASEDIR
99 dan Berkeley DB menemukan sesuatu yang salah dengan file lognya sendiri ketika mencoba memulihkan database Anda. Untuk dapat melanjutkan, Anda harus memindahkan file log Berkeley DB lama dari direktori database ke tempat lain, di mana nanti Anda dapat memeriksanya. File log
shell> cd BASEDIR
70 dinamai secara berurutan dimulai dengan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
01, di mana jumlahnya bertambah seiring waktu

Jika Anda menjalankan mysqld dengan dukungan tabel

shell> cd BASEDIR
70 dan inti dump mysqld saat startup, ini mungkin karena masalah dengan log pemulihan
shell> cd BASEDIR
70. Dalam hal ini, Anda dapat mencoba memulai mysqld dengan
shell> cd BASEDIR
99. Jika itu membantu, Anda harus menghapus semua file log
shell> cd BASEDIR
_70 dari direktori data dan coba mulai mysqld lagi tanpa opsi
shell> cd BASEDIR
99

Jika salah satu dari kesalahan berikut terjadi, itu berarti bahwa beberapa program lain (mungkin server mysqld lain) menggunakan port TCP/IP atau file soket Unix yang coba digunakan oleh mysqld

shell> bin/mysqld_safe --user=mysql &
4

Gunakan ps untuk menentukan apakah Anda menjalankan server mysqld lain. Jika demikian, matikan server sebelum memulai mysqld lagi. (Jika server lain sedang berjalan, dan Anda benar-benar ingin menjalankan beberapa server, Anda dapat menemukan informasi tentang cara melakukannya di Bagian 5. 13, “Menjalankan Banyak Server MySQL di Mesin yang Sama”. )

Jika tidak ada server lain yang berjalan, coba jalankan perintah

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
07
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
08
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
09. (Nomor port MySQL default adalah 3306. ) Lalu tekan Enter beberapa kali. Jika Anda tidak mendapatkan pesan kesalahan seperti
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
10, beberapa program lain menggunakan port TCP/IP yang coba digunakan oleh mysqld. Anda harus melacak program apa ini dan menonaktifkannya, atau beri tahu mysqld untuk mendengarkan port lain dengan opsi
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
11. Dalam hal ini, Anda juga perlu menentukan nomor port untuk program klien saat terhubung ke server melalui TCP/IP

Alasan lain port mungkin tidak dapat diakses adalah karena Anda menjalankan firewall yang memblokir koneksi ke port tersebut. Jika demikian, ubah pengaturan firewall untuk mengizinkan akses ke port

Jika server dimulai tetapi Anda tidak dapat menyambungkannya, Anda harus memastikan bahwa Anda memiliki entri di

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
12 yang terlihat seperti ini

shell> bin/mysqld_safe --user=mysql &
5

Masalah ini terjadi hanya pada sistem yang tidak memiliki pustaka utas yang berfungsi dan MySQL harus dikonfigurasi untuk menggunakan MIT-pthreads

Jika Anda tidak dapat memulai mysqld, Anda dapat mencoba membuat file jejak untuk menemukan masalahnya dengan menggunakan opsi

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
13. Lihat

2. 10. 3. Mengamankan Akun MySQL Awal

Bagian dari proses instalasi MySQL adalah menyiapkan database

mysqld: Can't find file: 'host.frm'
7 yang berisi tabel hibah

  • Distribusi Windows berisi tabel hibah prainisialisasi yang diinstal secara otomatis

  • Di Unix, tabel hibah diisi oleh program mysql_install_db. Beberapa metode instalasi menjalankan program ini untuk Anda. Lainnya mengharuskan Anda menjalankannya secara manual. Untuk detailnya, lihat

Tabel hibah menentukan akun pengguna MySQL awal dan hak aksesnya. Akun-akun ini diatur sebagai berikut

  • Akun dengan nama pengguna

    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7 dibuat. Ini adalah akun pengguna super yang dapat melakukan apa saja. Kata sandi akun
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    _7 awal kosong, sehingga siapa pun dapat terhubung ke server MySQL sebagai
    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7 — tanpa kata sandi — dan diberikan semua hak istimewa

    • Di Windows, satu akun

      shell> bin/mysqladmin version
      shell> bin/mysqladmin variables
      
      _7 dibuat; . Penginstal Windows secara opsional akan membuat akun yang mengizinkan koneksi dari host apa pun hanya jika pengguna memilih opsi Aktifkan akses root dari mesin jarak jauh selama penginstalan

    • Di Unix, kedua akun

      shell> bin/mysqladmin version
      shell> bin/mysqladmin variables
      
      7 adalah untuk koneksi dari host lokal. Sambungan harus dibuat dari host lokal dengan menentukan nama host
      shell> bin/mysql_install_db --user=mysql
      shell> scripts/mysql_install_db --user=mysql
      
      20 untuk salah satu akun, atau nama host aktual atau nomor IP untuk yang lain

  • Dua akun pengguna anonim dibuat, masing-masing dengan nama pengguna kosong. Akun anonim tidak memiliki kata sandi, sehingga siapa pun dapat menggunakannya untuk terhubung ke server MySQL

    • Di Windows, satu akun anonim adalah untuk koneksi dari host lokal. Itu memiliki semua hak istimewa, seperti akun

      shell> bin/mysqladmin version
      shell> bin/mysqladmin variables
      
      _7. Yang lainnya adalah untuk koneksi dari host mana pun dan memiliki semua hak istimewa untuk database
      shell> bin/mysqladmin version
      shell> bin/mysqladmin variables
      
      6 dan untuk database lain dengan nama yang dimulai dengan
      shell> bin/mysqladmin version
      shell> bin/mysqladmin variables
      
      6

    • Di Unix, kedua akun anonim adalah untuk koneksi dari host lokal. Sambungan harus dibuat dari host lokal dengan menentukan nama host

      shell> bin/mysql_install_db --user=mysql
      shell> scripts/mysql_install_db --user=mysql
      
      20 untuk salah satu akun, atau nama host aktual atau nomor IP untuk yang lain. Akun ini memiliki semua hak istimewa untuk database
      shell> bin/mysqladmin version
      shell> bin/mysqladmin variables
      
      6 dan untuk database lain dengan nama yang dimulai dengan
      shell> bin/mysqladmin version
      mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
      Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
      This software comes with ABSOLUTELY NO WARRANTY. This is free software,
      and you are welcome to modify and redistribute it under the GPL license
      
      Server version          5.0.25-Max
      Protocol version        10
      Connection              Localhost via UNIX socket
      UNIX socket             /var/lib/mysql/mysql.sock
      Uptime:                 14 days 5 hours 5 min 21 sec
      
      Threads: 1  Questions: 366  Slow queries: 0
      Opens: 0  Flush tables: 1  Open tables: 19
      Queries per second avg: 0.000
      
      0

Sebagaimana dicatat, tidak ada akun awal yang memiliki kata sandi. Ini berarti instalasi MySQL Anda tidak terlindungi sampai Anda melakukan sesuatu

  • Jika Anda ingin mencegah klien terhubung sebagai pengguna anonim tanpa kata sandi, Anda harus menetapkan kata sandi untuk setiap akun anonim atau menghapus akun tersebut

  • Anda harus menetapkan kata sandi untuk setiap akun MySQL

    shell> bin/mysqladmin version
    shell> bin/mysqladmin variables
    
    7

Instruksi berikut menjelaskan cara menyiapkan kata sandi untuk akun MySQL awal, pertama untuk akun anonim dan kemudian untuk akun

shell> bin/mysqladmin version
shell> bin/mysqladmin variables
7. Ganti “
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_29” pada contoh dengan kata sandi sebenarnya yang ingin Anda gunakan. Petunjuk juga mencakup cara menghapus akun anonim, jika Anda memilih untuk tidak mengizinkan akses anonim sama sekali

Anda mungkin ingin menunda pengaturan kata sandi hingga nanti, sehingga Anda tidak perlu menentukannya saat melakukan penyiapan atau pengujian tambahan. Namun, pastikan untuk mengaturnya sebelum menggunakan instalasi Anda untuk tujuan produksi

Penetapan Kata Sandi Akun Anonim

Untuk menetapkan kata sandi ke akun anonim, sambungkan ke server sebagai

shell> bin/mysqladmin version
shell> bin/mysqladmin variables
7 lalu gunakan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
31 atau
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
32. Dalam kedua kasus tersebut, pastikan untuk mengenkripsi kata sandi menggunakan fungsi
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
33

Untuk menggunakan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_31 di Windows, lakukan ini

shell> bin/mysqld_safe --user=mysql &
6

Untuk menggunakan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_31 di Unix, lakukan ini

shell> bin/mysqld_safe --user=mysql &
7

Pada pernyataan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_31 kedua, ganti
shell> cd BASEDIR
84 dengan nama host server. Ini adalah nama yang ditentukan dalam kolom
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
38 dari catatan non-
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
20 untuk
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
7 dalam tabel
shell> bin/mysqladmin version
mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.0.25-Max
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 14 days 5 hours 5 min 21 sec

Threads: 1  Questions: 366  Slow queries: 0
Opens: 0  Flush tables: 1  Open tables: 19
Queries per second avg: 0.000
7. Jika Anda tidak tahu apa nama host ini, keluarkan pernyataan berikut sebelum menggunakan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
31

shell> bin/mysqld_safe --user=mysql &
8

Cari catatan yang memiliki

shell> bin/mysqladmin version
shell> bin/mysqladmin variables
7 di kolom
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
44 dan sesuatu selain
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
20 di kolom ________10______38. Kemudian gunakan nilai
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_38 di pernyataan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
31 kedua

Cara lain untuk menetapkan kata sandi ke akun anonim adalah dengan menggunakan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
32 untuk mengubah tabel
shell> bin/mysqladmin version
mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.0.25-Max
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 14 days 5 hours 5 min 21 sec

Threads: 1  Questions: 366  Slow queries: 0
Opens: 0  Flush tables: 1  Open tables: 19
Queries per second avg: 0.000
7 secara langsung. Sambungkan ke server sebagai
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
_7 dan keluarkan pernyataan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
32 yang memberikan nilai ke kolom
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
53 dari catatan tabel
shell> bin/mysqladmin version
mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.0.25-Max
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 14 days 5 hours 5 min 21 sec

Threads: 1  Questions: 366  Slow queries: 0
Opens: 0  Flush tables: 1  Open tables: 19
Queries per second avg: 0.000
7 yang sesuai. Prosedurnya sama untuk Windows dan Unix. Pernyataan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_32 berikut memberikan kata sandi untuk kedua akun anonim sekaligus

shell> bin/mysqld_safe --user=mysql &
_9

Setelah Anda memperbarui kata sandi di tabel

shell> bin/mysqladmin version
mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.0.25-Max
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 14 days 5 hours 5 min 21 sec

Threads: 1  Questions: 366  Slow queries: 0
Opens: 0  Flush tables: 1  Open tables: 19
Queries per second avg: 0.000
_7 secara langsung menggunakan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
32, Anda harus memberi tahu server untuk membaca ulang tabel hibah dengan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
58. Jika tidak, perubahan tidak diketahui sampai Anda me-restart server

Penghapusan Akun Anonim

Jika Anda lebih suka menghapus akun anonim, lakukan sebagai berikut

mysqld: Can't find file: 'host.frm'
0

Pernyataan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_59 berlaku untuk Windows dan Unix. Di Windows, jika Anda hanya ingin menghapus akun anonim yang memiliki hak istimewa yang sama dengan
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
7, lakukan ini saja

mysqld: Can't find file: 'host.frm'
_1

Akun itu memungkinkan akses anonim tetapi memiliki hak istimewa penuh, jadi menghapusnya akan meningkatkan keamanan

shell> bin/mysqladmin version
shell> bin/mysqladmin variables
_7 Penetapan Kata Sandi Akun

Anda dapat menetapkan kata sandi ke akun

shell> bin/mysqladmin version
shell> bin/mysqladmin variables
7 dengan beberapa cara. Pembahasan berikut menunjukkan tiga metode

  • Gunakan pernyataan

    shell> bin/mysql_install_db --user=mysql
    shell> scripts/mysql_install_db --user=mysql
    
    _31

  • Gunakan program klien baris perintah mysqladmin

  • Gunakan pernyataan

    shell> bin/mysql_install_db --user=mysql
    shell> scripts/mysql_install_db --user=mysql
    
    _32

Untuk menetapkan kata sandi menggunakan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_31, sambungkan ke server sebagai
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
7 dan keluarkan dua pernyataan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
31. Pastikan untuk mengenkripsi kata sandi menggunakan fungsi ________10______33

Untuk Windows, lakukan ini

mysqld: Can't find file: 'host.frm'
_2

Untuk Unix, lakukan ini

mysqld: Can't find file: 'host.frm'
_3

Pada pernyataan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_31 kedua, ganti
shell> cd BASEDIR
84 dengan nama host server. Ini adalah nama host yang sama yang Anda gunakan saat menetapkan kata sandi akun anonim

Untuk menetapkan kata sandi ke akun

shell> bin/mysqladmin version
shell> bin/mysqladmin variables
_7 menggunakan mysqladmin, jalankan perintah berikut

mysqld: Can't find file: 'host.frm'
_4

Perintah-perintah ini berlaku untuk Windows dan Unix. Pada perintah kedua, ganti

shell> cd BASEDIR
_84 dengan nama host server. Tanda kutip ganda di sekitar kata sandi tidak selalu diperlukan, tetapi Anda harus menggunakannya jika kata sandi berisi spasi atau karakter lain yang khusus untuk penerjemah perintah Anda

Anda juga dapat menggunakan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_32 untuk memodifikasi tabel
shell> bin/mysqladmin version
mysqladmin  Ver 14.12 Distrib 5.0.25, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.0.25-Max
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 14 days 5 hours 5 min 21 sec

Threads: 1  Questions: 366  Slow queries: 0
Opens: 0  Flush tables: 1  Open tables: 19
Queries per second avg: 0.000
7 secara langsung. Pernyataan
shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_32 berikut memberikan kata sandi untuk kedua akun
shell> bin/mysqladmin version
shell> bin/mysqladmin variables
7 sekaligus

mysqld: Can't find file: 'host.frm'
5

Pernyataan

shell> bin/mysql_install_db --user=mysql
shell> scripts/mysql_install_db --user=mysql
_32 berlaku untuk Windows dan Unix

Setelah kata sandi diatur, Anda harus memberikan kata sandi yang sesuai setiap kali Anda terhubung ke server. Misalnya, jika Anda ingin menggunakan mysqladmin untuk mematikan server, Anda dapat melakukannya dengan menggunakan perintah ini

mysqld: Can't find file: 'host.frm'
_6

Catatan. Jika Anda lupa kata sandi

shell> bin/mysqladmin version
shell> bin/mysqladmin variables
_7 setelah menyiapkannya, , mencakup prosedur untuk mengatur ulang

Apa yang dilakukan skrip mysql_install_db?

Tujuan dari program mysql_install_db adalah untuk menginisialisasi direktori data, termasuk tabel di database sistem mysql . Itu tidak menimpa tabel hak istimewa MySQL yang ada, dan tidak memengaruhi data lainnya. Untuk membuat ulang tabel hak istimewa Anda, pertama-tama hentikan server mysqld jika sedang berjalan.

Apa yang harus dilakukan setelah instalasi MySQL?

Setelah Anda menginstal MySQL (baik dari distribusi biner atau sumber), Anda perlu menginisialisasi tabel hibah, memulai server, dan memastikan server bekerja dengan baik . Anda mungkin juga ingin mengatur agar server dimulai dan dihentikan secara otomatis saat sistem Anda dinyalakan dan dimatikan. . You may also wish to arrange for the server to be started and stopped automatically when your system starts up and shuts down.

Bagaimana cara memulai MySQL setelah instalasi?

Luncurkan Klien Baris Perintah MySQL. Untuk meluncurkan klien, masukkan perintah berikut di jendela Command Prompt. mysql -u root -p . Opsi -p diperlukan hanya jika kata sandi root ditentukan untuk MySQL. Masukkan kata sandi saat diminta.