[Çözüldü] Mysql (mariadb) Veritabanı Oluşturma Sorunu.

Başlatan mhmtkrktr, 29 Mart 2015 - 07:22:06

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

mhmtkrktr

Unicenta Opos : http://unicenta.com/



Unicenta Pos yazılımı için Mysql veritabanı oluşturmaya çalışıyorum, fakat denemelerime rağmen başarışı olamadım.İki farklı noktada hata alıyorum. Bu konuda deneyimi olan arkadaşlar yardımcı olursa sevinirim.

[root@thinkmake thinkmake]# mysql --version
mysql  Ver 15.1 Distrib 10.0.17-MariaDB, for Linux (x86_64) using readline 5.1

[root@thinkmake thinkmake]# systemctl status mysqld.service
● mysqld.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Paz 2015-03-29 04:17:35 EEST; 10s ago
  Process: 3954 ExecStartPost=/usr/bin/mysqld-post (code=exited, status=0/SUCCESS)
Main PID: 3953 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─3953 /usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid

Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] InnoDB: Completed initial...ool
Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] InnoDB: Highest supported...da.
Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] InnoDB: 128 rollback segm...ve.
Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] InnoDB: Waiting for purge...art
Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] InnoDB:  Percona XtraDB (...847
Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] Plugin 'FEEDBACK' is disabled.
Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] Server socket created on ...:'.
Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] Event Scheduler: Loaded 0...nts
Mar 29 04:17:34 thinkmake mysqld[3953]: 150329  4:17:34 [Note] /usr/bin/mysqld: ready fo...ns.
Mar 29 04:17:34 thinkmake mysqld[3953]: Version: '10.0.17-MariaDB-log'  socket: '/run/my...ver
Hint: Some lines were ellipsized, use -l to show in full.


[root@thinkmake thinkmake]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 20
Server version: 10.0.17-MariaDB-log MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]>


[root@thinkmake thinkmake]# mysql-workbench --version
MySQL Workbench CE (GPL) 6.2.5 0  build 397




Deneyimim olmadığı için burada ki ayarların doğruluğundan emin değilim, düzenleme menüsünden faklı şekillerde yeni hesaplar oluşturdum fakat sonuç değişmedi.



Birinci hata bu pencerede;



Pencere içeriği: http://paste2.org/NN1KZ6j8

Reverse Engineer seçeneğini yürüttüğüm zaman ise, herhangi bir seçenek olmaksızın bu pencerede kalıyorum.



İkinci hata işlemin sonunda, bu şekilde; Aldığım hata mesajı: http://paste2.org/CpXnB71h



Düzelme: Yazmayı unutmuşum, uygulamayı Arch Linux üzerinde yapmaya çalışıyorum.

cagriemer

Merhaba,

MySQL Workbench ile yazilimin kullanacagi veritabanini mi olusturmaya calisiyorsunuz? Komut ile olusturmayi denediniz mi veritabanini? Ornegin ilk ekran goruntusunde URL *localhost:3306/unicentaopos ile bitiyor. Demek ki bu veritabanini bulmayi bekliyor sistem. mysql -u root -p ile giris yaptiktan sonra su komutu yurutup sonra uniCenta kurulum ekranindaki test butonuna basip test eder misiniz?

CREATE DATABASE unicentaopos;

Kurulum ekranindaki user ve password bu ustteki sekliyle denerseniz MySQL root kullaniciniz ve ona atadiginiz sifre olacak. Eger baska bir kullanici olusturursaniz bu veritabanini yonetecek, onun bilgilerini kullanmalisiniz.

mhmtkrktr

@cagriemer, cevabın için çok teşekkür ederim. Sayende bir gece boyu uğraştığım iş, bir komutla çözüldü.

Konuya bağlantılı olduğu için farklı bir başlık açmadan, buradan iki sorum daha olacak; Gerekli bulunursa yönetimde ki arkadaşlar uygun bir başlık altına taşıyabilirler.

1 : İlerleyen zamanlarda yedeklemeye ihtiyaç duyduğumda, buradaki verileri nasıl yedekleyebilir ve daha sonra bu yedekleri nasıl geri yükleyebilirim?

2 : Pos yazılımına bağlı olarak, bizim dilimizde el terminali olarak geçen, saha elemanlarının da, bu veri tabanını kullanması gerekiyor. Unicenta pos için hazırlanmış videolarda //localhost yerine, bilgisayara sabit bir ip verilmiş ve bu alana bilgisayarın ip adresi yazılmış. Bu https://www.youtube.com/watch?v=YHHoeSU9uYs videoda 15:30 'dan itibaren bu anlatılmış  Bu şekilde olması gereklimi? Gerekiyorsa bunu nasıl yapabilirim?

Birde burada program için gerekli ayarlar anlatılmış: http://www.jumpmind.com/blog/synchronizing-unicenta-opos

SQL konusuyla daha önce hiç ilgilenmemiştim. Eğer bu işlemi başarı ile gerçekleştire bilirsem, çeviri için gerekli dosyaları turizm acentasında çalışan bir arkadaşa verdim, bir kaç güne program tamamen Türkçe olacak.


cagriemer

Rica ederim.

1) Yedekleme ve yedekten geri donme islemleri icin mysqldump komutunu kullanabilirsiniz. Ornek;


# Veritabani yedegini almak icin
mysqldump -u root -p unicentaopos > unicentaopos.sql

# Alinmis yedekten geri donmek icin
mysql -u root -p unicentaopos < unicentaopos.sql


Eger yedekten geri donerken veritabanini bulamadigindan yakinirsa, CREATE DATABASE unicentaopos; komutunu yuruttukten sonra tekrar denersiniz.

2) Eger el terminalleri de veritabanina baglanacaksa veritabaninin kendini iliskilendirdigi adresi degistireceksiniz. Oncelikle veritabanini calistiran makine internetten erisilebilir olmali. Yani bir NAT arkasindaysaniz baska ayarlar da yapmaniz gerekebilir. Yok dogrudan erisilebiliyorsa /etc/mysql/my.cnf dosyasinda bind-address gibi bir satir olacak. Bu satiri yorum olmaktan cikarip sunucunun IP'sini yazdiktan sonra mysql'i yeniden baslatirsiniz. netstat -plnt4 komutu ile bu islemin basarili olup olmadigini test edebilirsiniz. Yalniz bunu yaptiktan sonra muhtemelen unicentaopos'un veritabani ayarindaki localhost'u degistirmeniz gerekecektir. Deneyip gorursunuz. Bir de guvenlik adina bu sistemi kullanima acacaksaniz, kesinlikle root kullanicisi ile acmamanizi oneririm. Olusturdugunuz veritabani icin sadece o veritabaninda islem gerceklestirmeye izni olan ayri bir kullanici olusturmaniz iyi olacaktir.

Senkronizasyon kismina gelince orada bir yazilim ile bu olusturdugunuz veritabanini baska bir yerdeki veritabaniyla nasil esitleyebilirsiniz onu anlatmis. Siz bu adi gecen SymmetricDS yazilimini kullanmayacaksaniz o sayfadan yapmaniz gereken bir sey yok. Eger replication ihtiyaciniz varsa mysql'un bu is icin kendi cozumleri var. Onlari arastirmalisiniz.

mhmtkrktr

Alıntı Yap1) Yedekleme ve yedekten geri donme islemleri icin mysqldump komutunu kullanabilirsiniz. Ornek;

Kod: [Seç]
# Veritabani yedegini almak icin
mysqldump -u root -p unicentaopos > unicentaopos.sql

# Alinmis yedekten geri donmek icin
mysql -u root -p unicentaopos < unicentaopos.sql

Eger yedekten geri donerken veritabanini bulamadigindan yakinirsa, CREATE DATABASE unicentaopos; komutunu yuruttukten sonra tekrar denersiniz.

@cagriemer, tekrar teşekkür ederim. Denemeden cevap yazmak istemedim, bu yüzden biraz geç cevap yazdım. Verdiğiniz komutla bu eksikte tamamlanmış oldu. Son olarak;

Alıntı Yap2) Eger el terminalleri de veritabanina baglanacaksa veritabaninin kendini iliskilendirdigi adresi degistireceksiniz. Oncelikle veritabanini calistiran makine internetten erisilebilir olmali. Yani bir NAT arkasindaysaniz baska ayarlar da yapmaniz gerekebilir. Yok dogrudan erisilebiliyorsa /etc/mysql/my.cnf dosyasinda bind-address gibi bir satir olacak. Bu satiri yorum olmaktan cikarip sunucunun IP'sini yazdiktan sonra mysql'i yeniden baslatirsiniz. netstat -plnt4 komutu ile bu islemin basarili olup olmadigini test edebilirsiniz. Yalniz bunu yaptiktan sonra muhtemelen unicentaopos'un veritabani ayarindaki localhost'u degistirmeniz gerekecektir. Deneyip gorursunuz.

my.cnf içerisinde bind-address satırını bulamadım. Farklı bir isim veya bizim eklememiz gereken bir satır olabilir mi?

/etc/mysql/my.cnf = http://paste2.org/EX1cFXe0

Alıntı YapBir de guvenlik adina bu sistemi kullanima acacaksaniz, kesinlikle root kullanicisi ile acmamanizi oneririm. Olusturdugunuz veritabani icin sadece o veritabaninda islem gerceklestirmeye izni olan ayri bir kullanici olusturmaniz iyi olacaktir.

Programın kurulu olduğu bilgisayarda, yine sadece bu program çalışacak. Muhtemelen Arch Linux üzerine openbox kurup, sistem başlangıcında tam ekran olarak yapacağım bir uygulama olacak. Muhtemelen dememin sebebi, tesis içerisinde müzik, tv ekranlarında görsel içerik videoları vs yayınları yapmak amacı ile başka bilgisayarlar var. Fakat yer ve kaynak tasarrufu amacı ile bu yayınları da aynı bilgisayar üzerinden yürütme düşüncem var. Kullanılacak bilgisayar donanım açısından oldukça iyi. Bu konuda kullanıcı ve yetkileri açısından bir öneriniz olur mu? Tabii root yetkisini saymıyorum. 

cagriemer

Alıntı yapılan: mhmtkrktr - 30 Mart 2015 - 23:58:55
my.cnf içerisinde bind-address satırını bulamadım. Farklı bir isim veya bizim eklememiz gereken bir satır olabilir mi?

/etc/mysql/my.cnf = http://paste2.org/EX1cFXe0

[mysqld] altina "bind-address = IP.AD.RE.SI" formunda ekleyebilirsiniz.

Alıntı yapılan: mhmtkrktr - 30 Mart 2015 - 23:58:55Programın kurulu olduğu bilgisayarda, yine sadece bu program çalışacak. Muhtemelen Arch Linux üzerine openbox kurup, sistem başlangıcında tam ekran olarak yapacağım bir uygulama olacak. Muhtemelen dememin sebebi, tesis içerisinde müzik, tv ekranlarında görsel içerik videoları vs yayınları yapmak amacı ile başka bilgisayarlar var. Fakat yer ve kaynak tasarrufu amacı ile bu yayınları da aynı bilgisayar üzerinden yürütme düşüncem var. Kullanılacak bilgisayar donanım açısından oldukça iyi. Bu konuda kullanıcı ve yetkileri açısından bir öneriniz olur mu? Tabii root yetkisini saymıyorum.

Genel guvenlik onerileri sizin icin de gecerli olacaktir. Sistemde hangi hesaplar hangi kabiliyetlere sahip? Kimin hangi hesaba erisimi var? Veritabani sunucusuna ait kullanicilarin hangi veritabaninda hangi islemler icin izinleri[1] var? Tabii bu konu sizin sordugunuz sorudan apayri bir konu. Genel guvenlik tavsiyeleri icin baska bir baslik acabilirsiniz. Okuyanlar mutlaka tecrubelerini yazacaktir.

Sorununuz cozulduyse; http://kb.ubuntu-tr.net/cozulen-basliklarin-etiketlenmesi

[1] https://mariadb.com/kb/en/mariadb/grant/

mhmtkrktr

Üstadım kusuruma bakmayın, sorularıma bu kadar kısa sürede hızlı ve yerinde cevaplar bulabileceğimi düşünmüyordum. Konunun heyacanına kapıldım aldım başımı gidiyorum. Son bölümü şuan denemedim, fakat ipin ucunu tutunca gerisi gelir diye düşünüyor ve konuyu çözüldü olarak etiketliyorum.

Yardımınız için tekrar teşekkür ederim.  :)

Not: Kendi araştırmalarımla farklı bir yöntemle çözüme gidersem aynı konu altında sonucu yazarım.