Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

php ile mysql'den veritabanı açmak

merhaba,
sitem için php üzerinden veritabanı oluşturmaya çalışıyorum fakat hata alıyorum. eksiğim nedir tam olarak?
kullandığım kod..

$con = mysql_connect("localhost","kullaniciadi","sifre");
if(!$con)
{
	die('Bağlantı sorunu: ' . mysql_error());
}
if (mysql_create_db("deneme" ) )
{
	echo "Veritabanı oluşturuldu.";
}
else
{
	echo "Veritabanı oluştururken hata oluştu: " . mysql_error();
}
mysql_close($con);


aldığım hata..

Access denied for user 'kullaniciadi'@'localhost' to database 'deneme'
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • 1
    GncArt adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    42 cevap - 13 soru
    mysql_create_db() nin kullanılması php.net e göre artık önerilmiyor. Bu yüzden aşağıdaki yöntemle oluşturunuz. Kolay gelsin.

    <?php
    $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
    if (!$link) {
        die('Bağlanamadı: ' . mysql_error());
    }
    
    $sql = 'CREATE DATABASE yeniDBismi';
    if (mysql_query($sql, $link)) {
        echo "yeniDBismi veritabanı başarıyla oluşturuldu\n";
    } else {
        echo 'veritabanı oluşturulurken hata: ' . mysql_error() . "\n";
    }
    
    • GncArt adlı üyenin fotoğrafı GncArt
      Hali hazırda bir bağlantınız varsa MySQL e, ozaman sadece:

      if (mysql_query("CREATE DATABASE yeniDBismi") {
          echo "yeniDBismi veritabanı başarıyla oluşturuldu\n";
      } else {
          echo 'Veritabanı oluşturulurken hata: ' . mysql_error() . "\n";
      }
      
      10 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      hocam kullanıcı yetkilendirmesinde sıkıntı yaşıyorum ben.
      üstteki arkadaşa yazdığım cevabı okuyabilir misiniz orda sıkıntı mı anlatmıştım.
      teşekkür ederim.
      10 yıl önce yazılmış
    • halidaltuner adlı üyenin fotoğrafı halidaltuner
      cPanel kullanıyorsanız kullanıcıya db create yetkisi veremezsiniz.
      10 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      peki şu durumda ne yapabilirim... yani bu istediğimi yapmam şart
      10 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      halidaltunere katılıyorum. Ayrıca kullanıcıya DB açma yetkisini neden vermek istiyorsunuz anlayabilmiş değilim. Her isteyen DB açarsa işiniz var demektir.

      Yani bir araştırayım fakat pek ümitli değilim açıkcası.
      10 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      hocam blog açma tarzı bir site de açılan her blog için bir veritabanı açmak niyetim. kullanıcı kendi blogunu oluşturmak istediğinde anında veritabanı oluşturulsun vs. bu tarz bir iş için gerekli.
      10 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      Şöyle bir makale buldum. Test etme şansım şu an için yok ama birazcık mantığından bahsedeyim sen bir dene olursa da haber verirsin bizde yeni birşeyler öğrenmiş oluruz.

      http://ipucu.enderunix.org/view.php?id=1690&lang=tr

      Bu makaledeki sorgular CGI üzerinden çalışabilir biçimde ama sen sorgu cümlelerini query içinde yazarsan PHP üzerinde kuallanabilirsin.

      Kullanıcı yetkileri GRANT ile belirleniyor.

      GRANT yetkiler ON veritabani TO kullanıcı@localhost IDENTIFIED BY kullanıcı_sifre ;
      


      Yetkiler kısmına, INSERT, UPDATE, DELETE,SELECT den istediklerini virgül koayarak yaz. Hepsi olsun diyorsan ALL yazman yeterli.

      GRANT INSERT, UPDATE ON veritabani TO kullanıcı@localhost IDENTIFIED BY kullanıcı_sifre ;
      

      GRANT ALL ON veritabani TO kullanıcı@localhost IDENTIFIED BY kullanıcı_sifre ;
      


      Veritabanını oluşturursun, sonra Kullanıcı adları ve şifrelerini de istersin. Bu bilgileri bir üyeler tablosunda tutabilirsin. Artık kullanıcının yapacağı MySQL sorgularını yukarıdaki 2 biçimde üyeler tablosundan alacağın veritabanı, kullanıcı adı ve şifreye göre yaptıracaksın. Kullanıcı adı her zaman ...@localhost şeklinde bitmeli sanırsam :)
      10 yıl önce yazılmış
    • GncArt adlı üyenin fotoğrafı GncArt
      Bu GRANT la başlayan queryi sayfa başında yaptığında, sanırım diğer yetki sorgularını (insert,update,delete,select) normal şekilde yapabileceksin.
      10 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      ilgilendiğin ve zaman ayırdığın için çok teşekkür ediyorum hocam.
      hosting firmasıyla da iletişim halindeydim. onlardan bir sonuç gelmezse eğer belirttiğiniz yöntemi deniyecem. her iki durumda da sonucu buraya yazarım.
      saygılar sunuyorum.
      10 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      GncArt

      dediğiniz yöntemi deneyemedim malesef. hosting firmasınında önerisiyle windows a geçtim. pleskte sanırım yapılabiliyor.
      10 yıl önce yazılmış

Cevaplar

  • halidaltuner adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    144 cevap - 4 soru
    Kullanıcının veritabanı açma yetkisi yok. Kullanıcıya veritabanı açma yetkisi verin.
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      hocam o yetkilendirmeyi nasıl yapacam cpanelden mi? kullanıcı oluştururken yetkilendirme yapamıyoruz ki, kullanıcıyı bir veritabanı ile ilişkilendirirken yetkilendirme yapıyoruz. o yetkilendirme de ilişkilendirdiğimiz o veritabanı ile ilgili yetkilendirmeler zannedersem. onun haricinde benim istediğim aslında bir kullanıcının tüm veritabanlarında yetkili olması bunu nasıl sağlarım acaba.
      10 yıl önce yazılmış