Diantara banyaknya sistem database, barangkali Mysql atau pun mariadb adalah aplikasi SQL yang paling banyak digunakan, lalu bagaimana dengan Flask Python dapatkah menggunakan sistem database MySql dalam proses aplikasinya. Oke, untuk module mysql agar dapat dijalankan dengan python cukup banyak , nah diantaranya untuk penglguna Flask Python dapat menggunakan Flask-MySqlDB , namun perlu diketahuai kalo modul ini membutuhkan header development mysql client , jadi sebelum anda melakukan installaso Flask-mysqldb terlebih dahulu server yang anda gunakan telah terinstall library untuk mysql development client , bagi pengguna ubuntu server install terlebih dahulu libmysqlclient-dev dengan menggunakan perintah : # sudo apt install libmysqlclient-dev setelah menginstall library tersebut selanjunya install flask-mysqldb dengan perintah : pip3 install flask-msqldb untuk proses selanjutnya adalah untuk memasukkan module tersebut didalam script flask python from flask import Flask from flask_mysqldb import MySQL app = Flask(__name__) app.config[' Saya mengalami masalah besar ketika mencoba terhubung ke mysql. Ketika saya menjalankan:
Saya memiliki kesalahan berikut:
Saya punya di Dalam
dan
Saya telah memulai kembali apache menggunakan Tapi saya masih punya kesalahan. Kalau tidak, saya tidak tahu apakah itu relevan tetapi kapan
Jawaban: Jika file Anda my.cnf (biasanya di folder / etc / mysql / ) dikonfigurasi dengan benar
Anda dapat memeriksa apakah mysql berjalan dengan perintah berikut:
coba ubah izin Anda ke folder mysql. Jika Anda bekerja secara lokal, Anda dapat mencoba:
yang menyelesaikannya untukku Anda yakin telah menginstal mysql dan juga server mysql .. Sebagai contoh untuk menginstal server mySql saya akan menggunakan yum atau apt untuk menginstal alat baris perintah mysql dan server:
Aktifkan layanan MySQL:
Mulai server MySQL:
setelah itu setel kata sandi root MySQL:
Saya harap ini membantu. Solusi cepat yang berfungsi untuk saya: coba gunakan alamat ip lokal (127.0.0.1) alih-alih 'localhost' di mysql_connect (). Ini "memaksa" php untuk terhubung melalui TCP / IP bukannya soket unix. Saya mendapat kesalahan berikut
Mencoba beberapa cara dan akhirnya menyelesaikannya melalui cara berikut
diubah
untuk
dan memulai kembali
itu berhasil Pastikan Anda menjalankan mysqld: Untuk mencegah masalah terjadi, Anda harus melakukan shutdown server yang anggun dari baris perintah daripada mematikan server.
Ini akan menghentikan layanan yang berjalan sebelum mematikan mesin. Berdasarkan Centos, metode tambahan untuk mendapatkannya kembali ketika Anda mengalami masalah ini adalah memindahkan mysql.sock:
Restart layanan menciptakan entri baru yang disebut mqsql.sock Saya mendapatkan kesalahan ini ketika saya mengatur tugas cron untuk file saya. Saya mengubah izin file menjadi 777 tetapi tetap tidak berfungsi untuk saya. Akhirnya saya mendapat solusinya. Mungkin itu akan bermanfaat bagi orang lain. Coba dengan perintah ini:
Ingat bahwa -h berarti host , -P berarti port dan -p berarti kata sandi. Seperti yang dapat dilihat oleh banyak jawaban di sini, ada banyak masalah yang dapat mengakibatkan pesan kesalahan ini ketika Anda memulai layanan MySQL. Masalahnya, MySQL biasanya akan memberi tahu Anda apa yang salah, jika Anda hanya melihat file log yang sesuai. Misalnya, di Ubuntu, Anda harus memeriksa
Jangan membabi buta membuat perubahan pada konfigurasi Anda karena orang lain berkata 'Ini bekerja untuk sistem saya.' Cari tahu apa yang sebenarnya salah dengan sistem Anda dan Anda akan mendapatkan hasil yang lebih baik lebih cepat. Solusi lain adalah mengedit /etc/my.cnf dan menyertakan host di bagian [klien]
Dan kemudian me-restart layanan mysql. Solusi ini diuji dalam: Versi server: Distribusi sumber 5.5.25a-log Saya memiliki masalah yang sama dan itu disebabkan oleh pembaruan driver mysql ketika server mysql berjalan. Saya memperbaikinya hanya me-restart mysql dan apache2:
Dalam kasus saya, saya menggunakan Centos 5.5. Saya menemukan bahwa masalahnya adalah karena layanan mysql dihentikan. Jadi saya memulai layanan mysql dengan perintah:
Jadi .. kesalahan konyol. Jika semuanya bekerja dengan baik dan Anda baru saja mulai melihat kesalahan ini, sebelum Anda melakukan hal lain, pastikan Anda tidak kehabisan ruang disk:
Jika volume tempat mysql.sock sedang dibuat adalah 100% digunakan, MySql tidak akan dapat membuatnya dan ini akan menjadi penyebab kesalahan ini. Yang perlu Anda lakukan adalah menghapus sesuatu yang tidak diperlukan, seperti file log lama. coba dengan -h (host) dan -P (port):
Ini akan melayani Anda dengan baik. Mungkin ada kemungkinan Anda mengubah beberapa perintah yang memengaruhi konfigurasi mysql. Ada banyak solusi untuk masalah ini tetapi untuk situasi saya, saya hanya perlu memperbaiki DATE pada mesin / server ( Ubuntu 16.04 Server ). i) Periksa tanggal server Anda dan perbaiki. ii) Lari Itu harus memulainya. Saya mendapatkan kesalahan karena saya menjalankan MAMP dan file .sock saya berada di lokasi yang berbeda. Saya baru saja menambahkan tautan simbolis di mana aplikasi berpikir seharusnya menunjuk ke tempat itu sebenarnya dan itu berfungsi seperti pesona. Saya juga menemukan bahwa ini adalah masalah izin. Saya membandingkan file MySQL dengan instalasi yang berfungsi (keduanya pada Debian 6 squeeze) dan harus
membuat perubahan kepemilikan berikut (di mana Kepemilikan
Kepemilikan
Kepemilikan
Bagi saya - ini hanyalah kasus MySQL yang membutuhkan waktu lama untuk dimuat. Saya memiliki lebih dari 100.000 tabel di salah satu basis data saya dan akhirnya mulai tetapi jelas harus memakan waktu lama dalam hal ini. Jika Anda menggunakan AWS (Amazon Web Services) versi Mikro, maka itu adalah masalah memori. Ketika saya berlari
dari terminal katanya
Jadi saya mencoba yang berikut dan itu hanya akan gagal.
Setelah banyak pencarian, saya menemukan bahwa Anda harus membuat file swap agar MySQL memiliki cukup memori. Instruksi terdaftar: http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html . Kemudian, saya bisa me-restart mysqld. Anda selalu dapat memulai server mysql dengan menentukan lokasi file mysql.sock menggunakan
Ini akan berfungsi bahkan jika lokasi file socket di tentukan di lokasi yang berbeda di file my.cnf. Bagi mereka yang solusinya tidak berhasil, coba:
periksa apakah my.cnf ada
dan pastikan Anda hanya memiliki satu bind-address sebagai berikut: bind-address = 127.0.0.1 Jika tidak, itu mungkin masalahnya, keluar saja dari nano dan simpan file. dan Perhatikan
bahwa jika Anda tidak memiliki nano (editor teks) cukup instal dengan Saya punya masalah ini juga ketika mencoba untuk memulai server, begitu banyak jawaban di sini yang hanya mengatakan untuk memulai server tidak berfungsi. Hal pertama yang dapat Anda lakukan adalah menjalankan yang berikut untuk melihat apakah ada kesalahan konfigurasi:
Saya memang memiliki satu kesalahan yang muncul:
Sederhana Kemudian, memeriksa
Berdasarkan
pertanyaan ini solusi yang diterima tidak akan berfungsi karena saya bahkan tidak bisa memulai server, jadi saya mengikuti apa yang dikatakan beberapa komentar dan menghapus saya Ini memungkinkan server untuk memulai dan saya dapat terhubung dan mengeksekusi query, namun memeriksa file log kesalahan saya dengan cepat diisi dengan beberapa puluhan ribu baris seperti ini:
Berdasarkan saran dari sini , untuk memperbaikinya, saya melakukan mysqldump dan memulihkan semua basis data (lihat tautan untuk beberapa solusi lain).
Semuanya tampak berfungsi seperti yang diharapkan sekarang. Menambahkan
ke daftar pramaters di koneksi Anda bekerja untuk saya. Ini cukup baik untukku
Saya mengalami masalah ini hari ini. Tak satu pun dari jawaban ini memberikan perbaikan. Saya perlu melakukan perintah berikut (ditemukan di sini https://stackoverflow.com/a/20141146/633107 ) untuk memulai layanan mysql saya:
Ini sebagian ditunjukkan oleh kesalahan berikut di /var/log/mysql/error.log:
Saya juga melihat disk penuh kesalahan, tetapi hanya ketika menjalankan perintah tanpa sudo. Jika pemeriksaan izin gagal, ini melaporkan disk penuh (bahkan ketika partisi Anda bahkan tidak mendekati penuh). CentOS 7, 64 bit. Instalasi baru. Saat menginstal server, saya diperlihatkan pesan bahwa kata sandi ke akun root untuk MySQL disimpan dalam file yang dapat saya lihat dengan Jadi setelah menginstal klien dan server, saya memeriksa apakah MySQL berfungsi (saya pikir saya reboot sebelum melakukannya) dengan perintah
Saya login ke MySQL menggunakan
password dari file .mysql_secret: dan kemudian diketik masukkan perintah berikut di prompt mysql untuk mengubah kata sandi root:
Semuanya bekerja dengan baik sejak saat itu.
Bekerja untuk saya, saya menggunakan Centos Ini tidak langsung menjawab pertanyaan Anda tetapi sebagian, yaitu menggunakan PythonAnywhere. Saya terus menemukan pertanyaan ini ketika mencari perbaikan jadi saya menambahkannya di sini dengan harapan itu akan membantu orang lain dalam situasi saya. PythonAnywhere memutuskan untuk mengubah nama host koneksi database untuk meningkatkan efisiensi dan keandalan, sebagaimana dirinci di sini :
Karenanya, Anda perlu memperbarui nama host Anda ke nilai yang disorot di atas. Saya baru saja mengalami masalah ini. setelah seharian memeriksa akhirnya saya mendapat jawaban dengan bahwa file mysql.sock dibuat ketika MariaDB dimulai dan dihapus ketika MariaDB dimatikan. Itu tidak akan ada jika MariaDB tidak berjalan. mungkin Anda tidak menginstal MariaDB. ANDA BISA IKUTI INSTRUKSI DI BAWAH INI: https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 BEST Saya mengalami kesalahan soket ini dan pada dasarnya bermuara pada fakta bahwa MySQL tidak berjalan. Jika Anda menjalankan instalasi baru, pastikan Anda menginstal 1) paket sistem dan 2) installer panel (mysql.prefPane). Pemasang panel akan memungkinkan Anda untuk pergi ke System Preferences dan membuka MySQL, dan kemudian menjalankan instance. Perhatikan bahwa, pada instalasi baru, saya perlu mengatur ulang komputer saya agar perubahan dapat diterapkan dengan benar. Setelah reboot, saya menjalankan instance baru dan dapat membuka koneksi ke localhost tanpa masalah. Juga dari catatan, saya tampaknya telah menginstal versi MySQL sebelumnya tetapi telah menghapus panel, yang membuatnya mudah untuk mendapatkan instance dari MySQL yang berjalan untuk pengguna mac. Tautan yang baik untuk proses instalasi ulang ini: http://www.coolestguyplanettech.com/how-to-install-php-mysql-apache-on-os-x-10-6/ |