Php BitNami lamba yığınını kullanarak mysql bağlanamıyor

1 Cevap php

Tamam, bu uzun bir soru olacak.

Bir şeyler almak için çalışıyorum ve benim üniversite hesabına koşuyorum. Biz orada istediğimiz her şeyi barındırmak için web alanı olarak kullanabileceğiniz bir public_html klasör var.

Ben bu yüzden gerçekten çok uzun umurumda değil public_html klasörüne (muhtemelen iyi bir fikir, güvenlik-bilge, ama sadece birkaç gün için bu uygulamayı test etmek ve onu aşağı çekmek için gidiyorum değil bitnami lamba yığını yükledim Ben bu kalkmak ve hızlı koşma) ve barındırmak istediğiniz site (http:// (tek adres) / (my hesap adı) / public_html/lamp/apache2/htdocs / (aracılığıyla vb ince ve erişilebilir çalışıyor olabilir. .) Ancak, databse bağlanır kod bazı bölümlerini bana şu uyarıyı veriyor:

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Ben aşağıdaki kodu kullanarak veritabanına bağlıyorum:

mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass);

Dbhost 'localhost' olduğu.

/ Var / run / mysqld / mysqld.sock başvuran beri - Açıkçası ben onun my.cnf şu var yükledim lamba yığını mysql olarak yanlış bir şey bağlanmaya çalışıyor demektir:

[mysqladmin]
user=root

[mysqld]
basedir=(my account folder)/public_html/lamp/mysql
datadir=(my account folder)/public_html/lamp/mysql/data
port=3306
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock
tmpdir=(my account folder)/public_html/lamp/mysql/tmp

[mysqld_safe]
mysqld=mysqld.bin

[client]
port=3306
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock

[manager]
port=3306
socket=(my account folder)/public_html/lamp/mysql/tmp/mysql.sock
pid-file=(my account folder)/public_html/lamp/mysql/tmp/manager.pid
default-mysqld-path=(my account folder)/public_html/lamp/mysql/bin/mysqld.bin

Yani benim soru herkes doğru sokete bağlanmak için nasıl biliyor, değil mi? Ayrıca, var / run / mysqld / mysqld.sock hiç yok ve ben açıkçası (ben o benim amaca nasıl hizmet görmek değil) oluşturmak için izniniz yok.

Bu dünden beri beni saran olmuştu. Herhangi bir yardım büyük mutluluk duyacağız.

Şerefe!

1 Cevap

Sen mysql_connect soket dosyasını $ CFG-> dbhost noktası yaparak yerine localhost (örneğin 3. fonksiyonel expample görmek mümkün olmalıdır) kullanarak my.cnf tanımlanan soketi belirtmeniz gerekebilir

$CFG->dbhost = ':(my account folder)/public_html/lamp/mysql/tmp/mysql.sock';
$link = mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass);

İşe yarayıp yaramadığını görmek!

Tavsiye başka bir kelime de soket dosya aslında bu konumda mysql hizmeti tarafından oluşturulan olduğundan emin olmalıdır "(hesabım klasör) / public_html / lamba / mysql / tmp / mysql.sock"


Edit:

Biz sadece mysql çorap dosyasının yolunu geçerli oldu ve dosyası olmuştur göründüğü oluşturulduğunu onaylamak için gereklidir.

Ayrıca elle tanısı ile yardımcı olmak için başka iyi bir adım olacaktır komut satırından mysql sunucuya bağlanabilirsiniz teyit edebilirsiniz.

mysql --socket=<my account folder>/public_html/lamp/mysql/tmp/mysql.sock -u <username> -p


Edit 2:

Eğer yukarıdaki örneklerde klasörü hesabı yerine zaman size dosyanın tam yolunu kullanarak sadece hızlı onay.

örneğin

/home/<username>/public_html/lamp/mysql/tmp/mysql.sock